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.22"
40 
41 class OSystem;
42 
43 namespace Graphics {
44 struct DrawStep;
45 class VectorRenderer;
46 }
47 
48 namespace GUI {
49 
50 struct WidgetDrawData;
51 struct TextDrawData;
52 class Dialog;
53 class GuiObject;
54 class ThemeEval;
55 class ThemeParser;
56 
62 enum 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 
141 enum DrawLayer {
142  kDrawLayerBackground,
143  kDrawLayerForeground
144 };
145 
146 // FIXME: TextData is really a bad name, not conveying what this enum is about.
147 enum TextData {
148  kTextDataNone = -1,
149  kTextDataDefault = 0,
150  kTextDataButton,
151  kTextDataNormalFont,
152  kTextDataTooltip,
153  kTextDataConsole,
154  kTextDataExtraLang,
155  kTextDataMAX
156 };
157 
158 enum 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 
182 public:
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 
202 private:
204  Common::String _fontFilesStd[kTextDataMAX];
205  Common::String _fontFilesScalable[kTextDataMAX];
206  int _fontSize[kTextDataMAX];
207 };
208 
209 class ThemeEngine {
210 protected:
212 
213  friend class GUI::Dialog;
214  friend class GUI::GuiObject;
215 
216 public:
219  kTextAlignVInvalid,
220  kTextAlignVBottom,
221  kTextAlignVCenter,
222  kTextAlignVTop
223  };
224 
235  kGridItemHighlight
236  };
237 
240  kDialogBackgroundMain,
241  kDialogBackgroundSpecial,
242  kDialogBackgroundPlain,
243  kDialogBackgroundTooltip,
244  kDialogBackgroundDefault,
245  kDialogBackgroundNone
246  };
247 
249  enum State {
253  kStatePressed
254  };
255 
256  typedef State WidgetStateInfo;
257 
262  kTextInversionFocus
263  };
264 
265  enum ScrollbarState {
266  kScrollbarStateNo,
267  kScrollbarStateUp,
268  kScrollbarStateDown,
269  kScrollbarStateSlider,
270  kScrollbarStateSinglePage
271  };
272 
274  enum FontStyle {
275  kFontStyleBold = 0,
276  kFontStyleNormal = 1,
277  kFontStyleItalic = 2,
278  kFontStyleFixedNormal = 3,
279  kFontStyleFixedBold = 4,
280  kFontStyleFixedItalic = 5,
281  kFontStyleTooltip = 6,
282  kFontStyleConsole = 7,
283  kFontStyleLangExtra = 8,
284  kFontStyleMax
285  };
286 
288  enum FontColor {
289  kFontColorFormatting = -1,
290  kFontColorNormal = 0,
291  kFontColorAlternate = 1,
292  kFontColorOverride = 2,
293  kFontColorMax
294  };
295 
300  kShadingLuminance
301  };
302 
305  kAutoScaleNone = 0,
306  kAutoScaleStretch = 1,
307  kAutoScaleFit = 2,
308  kAutoScaleNinePatch = 3
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 
335  kGfxDisabled = 0,
337  kGfxAntialias
338  };
339 
341  static const int kDirtyRectangleThreshold = 1;
342 
343  struct Renderer {
344  const char *name;
345  const char *shortname;
346  const char *cfg;
347  GraphicsMode mode;
348  };
349 
350  static const Renderer _rendererModes[];
351  static const uint _rendererModesSize;
352 
353  static const GraphicsMode _defaultRendererMode;
354 
355  static GraphicsMode findMode(const Common::String &cfg);
356  static const char *findModeConfigName(GraphicsMode mode);
357 
360 
362  ~ThemeEngine();
363 
364  void setBaseResolution(int w, int h, float s);
365  bool init();
366  void clearAll();
367 
368  void refresh();
369  void enable();
370 
371  void showCursor();
372  void hideCursor();
373 
374  void disable();
375 
376 
380  const Graphics::PixelFormat getPixelFormat() const { return _overlayFormat; }
381 
387  void applyScreenShading(ShadingStyle shading);
388 
396  void drawToBackbuffer();
397 
403  void drawToScreen();
404 
409  void updateScreen();
410 
414  void copyBackBufferToScreen();
415 
416 
419 
420  TextData fontStyleToData(FontStyle font) const {
421  if (font == kFontStyleNormal)
422  return kTextDataNormalFont;
423  if (font == kFontStyleTooltip)
424  return kTextDataTooltip;
425  if (font == kFontStyleConsole)
426  return kTextDataConsole;
427  if (font == kFontStyleLangExtra)
428  return kTextDataExtraLang;
429  return kTextDataDefault;
430  }
431 
432  const Graphics::Font *getFont(FontStyle font = kFontStyleBold) const;
433 
434  int getFontHeight(FontStyle font = kFontStyleBold) const;
435 
436  int getStringWidth(const Common::U32String &str, FontStyle font = kFontStyleBold) const;
437 
438  int getCharWidth(uint32 c, FontStyle font = kFontStyleBold) const;
439 
440  int getKerningOffset(uint32 left, uint32 right, FontStyle font = kFontStyleBold) const;
441 
443 
453  Common::Rect swapClipRect(const Common::Rect &newRect);
454  const Common::Rect getClipRect();
455 
459  void disableClipRect();
460 
469  Common::Rect getDialogDirtyRect(const Common::Rect &r, DialogBackground bgtype);
470 
473 
474  void drawWidgetBackground(const Common::Rect &r, WidgetBackground background);
475 
476  void drawButton(const Common::Rect &r, const Common::U32String &str, WidgetStateInfo state = kStateEnabled,
477  uint16 hints = 0);
478 
479  void drawDropDownButton(const Common::Rect &r, uint32 dropdownWidth, const Common::U32String &str,
480  WidgetStateInfo buttonState, bool inButton, bool inDropdown, bool rtl = false);
481 
482  void drawManagedSurface(const Common::Point &p, const Graphics::ManagedSurface &surface, Graphics::AlphaType alphaType);
483 
484  void drawSlider(const Common::Rect &r, int width, WidgetStateInfo state = kStateEnabled, bool rtl = false);
485 
486  void drawCheckbox(const Common::Rect &r, int spacing, const Common::U32String &str, bool checked,
487  WidgetStateInfo state = kStateEnabled, bool override = false, bool rtl = false);
488 
489  void drawRadiobutton(const Common::Rect &r, int spacing, const Common::U32String &str, bool checked,
490  WidgetStateInfo state = kStateEnabled, bool rtl = false);
491 
492  void drawTab(const Common::Rect &r, int tabHeight, const Common::Array<int> &tabWidths,
493  const Common::Array<Common::U32String> &tabs, int active, bool rtl,
495 
496  void drawScrollbar(const Common::Rect &r, int sliderY, int sliderHeight, ScrollbarState scrollState);
497 
498  void drawPopUpWidget(const Common::Rect &r, const Common::U32String &sel, int deltax,
499  WidgetStateInfo state = kStateEnabled, bool rtl = false);
500 
501  void drawCaret(const Common::Rect &r, bool erase);
502 
503  void drawLineSeparator(const Common::Rect &r);
504 
505  void drawDialogBackground(const Common::Rect &r, DialogBackground type);
506 
507  void drawText(const Common::Rect &r, const Common::U32String &str, WidgetStateInfo state = kStateEnabled,
509  TextInversionState inverted = kTextInversionNone, int deltax = 0, bool useEllipsis = true,
510  FontStyle font = kFontStyleBold, FontColor color = kFontColorNormal, bool restore = true,
511  const Common::Rect &drawableTextArea = Common::Rect(0, 0, 0, 0));
512 
513  void drawChar(const Common::Rect &r, byte ch, const Graphics::Font *font, FontColor color = kFontColorNormal, TextInversionState inverted = ThemeEngine::kTextInversionNone);
514 
515  void drawFoldIndicator(const Common::Rect &r, bool expanded);
516 
518 
519 
520 
528  void addDirtyRect(Common::Rect r);
529 
530 
540  DrawData parseDrawDataId(const Common::String &name) const;
541 
542  TextData getTextData(DrawData ddId) const;
543  TextColor getTextColor(DrawData ddId) const;
544 
545  TextColorData *getTextColorData(TextColor color) const;
546 
551  bool getDrawDataColor(DrawData ddId, uint8 &r, uint8 &g, uint8 &b) const;
552 
562  void addDrawStep(const Common::String &drawDataId, const Graphics::DrawStep &step);
563 
573  bool addDrawData(const Common::String &data, bool cached);
574 
575 
586  bool addFont(TextData textId, const Common::String &language, const Common::String &file, const Common::String &scalableFile, const int pointsize);
587 
594  void storeFontNames(TextData textId, const Common::String &language, const Common::String &file, const Common::String &scalableFile, const int pointsize);
595 
602  bool loadExtraFont(FontStyle style, Common::Language lang);
603 
612  bool addTextColor(TextColor colorId, int r, int g, int b);
613 
614 
623  bool addBitmap(const Common::String &filename, const Common::String &scalablefile, int widht, int height);
624 
629  bool addTextData(const Common::String &drawDataId, TextData textId, TextColor id, Graphics::TextAlign alignH, TextAlignVertical alignV);
630 
631 public:
632  enum CursorType {
633  kCursorNormal = 0,
634  kCursorIndex = 1,
635  kCursorMax
636  };
637 
638  void setActiveCursor(CursorType type);
639 
640 protected:
647  bool ready() const {
648  return _initOk && _themeOk;
649  }
650 
652  void loadTheme(const Common::String &themeid);
653 
658  void setGraphicsMode(GraphicsMode mode);
659 
660  struct CursorData {
662  int hotspotX = 0;
663  int hotspotY = 0;
664  };
665 
666  CursorData _cursors[kCursorMax];
667  CursorType _activeCursorType = kCursorNormal;
668  bool _useCursor = false;
669 
670 public:
671  inline ThemeEval *getEvaluator() { return _themeEval; }
672  inline Graphics::VectorRenderer *renderer() { return _vectorRenderer; }
673 
674  inline bool supportsImages() const { return true; }
675  inline bool ownCursor() const { return _useCursor; }
676 
677  Common::SharedPtr<Graphics::ManagedSurface> getImageSurface(const Common::String &name) const {
678  return _bitmaps.contains(name) ? _bitmaps[name] : 0;
679  }
680 
690  bool createCursor(const Common::String &filename, int hotspotX, int hotspotY, CursorType type = kCursorNormal);
691 
698  void restoreBackground(Common::Rect r);
699 
700  const Common::String &getThemeName() const { return _themeName; }
701  const Common::String &getThemeId() const { return _themeId; }
702  int getGraphicsMode() const { return _graphicsMode; }
703 
704 protected:
705 
712  bool loadThemeXML(const Common::String &themeId);
713 
719  bool loadDefaultXML();
720 
725  void unloadTheme();
726 
730  void unloadExtraFont();
731 
732  const Graphics::Font *loadScalableFont(const Common::String &filename, const int pointsize, Common::String &name);
733  const Graphics::Font *loadFont(const Common::String &filename, Common::String &name);
734  Common::String genCacheFilename(const Common::String &filename) const;
735  const Graphics::Font *loadFont(const Common::String &filename, const Common::String &scalableFilename, const int pointsize, const bool makeLocalizedFont);
736 
741  void updateDirtyScreen();
742 
751  void drawDD(DrawData type, const Common::Rect &r, uint32 dynamic = 0, bool forceRestore = false);
752  void drawDDText(TextData type, TextColor color, const Common::Rect &r, const Common::U32String &text, bool restoreBg,
753  bool elipsis, Graphics::TextAlign alignH = Graphics::kTextAlignLeft,
754  TextAlignVertical alignV = kTextAlignVTop, int deltax = 0,
755  const Common::Rect &drawableTextArea = Common::Rect(0, 0, 0, 0));
756 
761  Common::Rect getDrawDataExtendedRect(DrawData type, const Common::Rect &r) const;
762 
766  void debugWidgetPosition(const char *name, const Common::Rect &r);
767 
768 public:
770  Common::String name;
771  Common::String id;
772  Common::Path filename;
773  };
774 
778  static void listUsableThemes(Common::List<ThemeDescriptor> &list);
779 private:
780  static bool themeConfigUsable(const Common::FSNode &node, Common::String &themeName);
781  static bool themeConfigUsable(const Common::ArchiveMember &member, Common::String &themeName);
782  static bool themeConfigParseHeader(Common::String header, Common::String &themeName);
783 
784  static Common::Path getThemeFile(const Common::String &id);
785  static Common::String getThemeId(const Common::Path &filename);
786  static void listUsableThemes(const Common::FSNode &node, Common::List<ThemeDescriptor> &list, int depth = -1);
787  static void listUsableThemes(Common::Archive &archive, Common::List<ThemeDescriptor> &list);
788 
789  Common::Archive *createUnpackedThemeArchive(const Common::FSNode &themeDir);
790 
791 protected:
792  OSystem *_system;
796 
799 
802 
805 
808 
815  DrawLayer _layerToDraw;
816 
819 
822 
823  int16 _baseWidth, _baseHeight;
824  float _scaleFactor;
825  bool _needScaleRefresh = false;
826 
829 
834  WidgetDrawData *_widgets[kDrawDataMAX];
835 
837  TextDrawData *_texts[kTextDataMAX];
838 
840  TextColorData *_textColors[kTextColorMAX];
841 
846 
847  ImagesMap _bitmaps;
848  Graphics::PixelFormat _overlayFormat;
849 
852 
853  bool _initOk;
854  bool _themeOk;
855  bool _enabled;
856 
858  Common::String _themeId;
859  Common::Path _themeFile;
860  Common::Archive *_themeArchive;
861  Common::SearchSet _themeFiles;
862 
863  int _cursorHotspotX, _cursorHotspotY;
864  uint32 _cursorTransparent;
865  byte *_cursor;
866  uint _cursorWidth, _cursorHeight;
867 
868  enum {
869  MAX_CURS_COLORS = 255
870  };
871 
872  Common::Rect _clip;
873 };
874 
875 } // End of namespace GUI.
876 
877 #endif
Definition: managed_surface.h:51
Center the text.
Definition: font.h:52
bool _enabled
Whether the Theme is currently shown on the overlay.
Definition: ThemeEngine.h:855
Definition: str.h:59
Indicates that the text should not be drawn inverted.
Definition: ThemeEngine.h:260
Definition: VectorRenderer.h:51
Definition: font.h:83
FontColor
Font color selector.
Definition: ThemeEngine.h:288
TextAlign
Definition: font.h:48
ShadingStyle
Function used to process areas other than the current dialog.
Definition: ThemeEngine.h:297
Definition: ThemeEngine.h:181
static const char *const kImageSearch
Search tool image used in the launcher.
Definition: ThemeEngine.h:314
bool ready() const
Definition: ThemeEngine.h:647
AutoScaleMode
AlphaBitmap scale mode selector.
Definition: ThemeEngine.h:304
Dimming unused areas.
Definition: ThemeEngine.h:299
Definition: ThemeEngine.h:769
Definition: pixelformat.h:138
No background at all.
Definition: ThemeEngine.h:227
Background used for thumbnails.
Definition: ThemeEngine.h:233
TextAlignVertical
Vertical alignment of the text.
Definition: ThemeEngine.h:218
In find(In first, In last, const T &v)
Definition: algorithm.h:225
Align the text to the left.
Definition: font.h:51
Standard (aliased) renderer.
Definition: ThemeEngine.h:336
WidgetBackground
Widget background type.
Definition: ThemeEngine.h:226
Definition: list.h:44
GUI::ThemeEval * _themeEval
Definition: ThemeEngine.h:801
Definition: rect.h:524
Definition: path.h:52
bool _themeOk
Theme data successfully loaded.
Definition: ThemeEngine.h:854
Common::Array< LangExtraFont > _langExtraFonts
Definition: ThemeEngine.h:845
Same as kWidgetBackgroundPlain just with a border.
Definition: ThemeEngine.h:229
static const char *const kImageStopButton
Stop recording button in recorder onscreen dialog.
Definition: ThemeEngine.h:320
Common::String _themeName
Name of the currently loaded theme.
Definition: ThemeEngine.h:857
Definition: VectorRenderer.h:138
Definition: ThemeEval.h:37
Definition: printman.h:30
Definition: object.h:60
static const char *const kImageLogoSmall
ScummVM logo used in the GMM.
Definition: ThemeEngine.h:313
Definition: archive.h:141
bool _initOk
Class and renderer properly initialized.
Definition: ThemeEngine.h:853
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
Default Background used for grid items.
Definition: ThemeEngine.h:234
GUI::ThemeParser * _parser
Definition: ThemeEngine.h:798
Indicates that the text should be drawn inverted, but not focused.
Definition: ThemeEngine.h:261
Background used for sliders.
Definition: ThemeEngine.h:232
Definition: hashmap.h:85
static const char *const kImageGroup
Select Group image used in the launcher.
Definition: ThemeEngine.h:315
Definition: ustr.h:57
Definition: archive.h:330
Common::List< Common::Rect > _dirtyScreen
Definition: ThemeEngine.h:851
static const char *const kImageDelButton
Delete characters in the predictive dialog.
Definition: ThemeEngine.h:317
const Graphics::Font * _font
Definition: ThemeEngine.h:828
Definition: archive.h:68
DialogBackground
Dialog background type.
Definition: ThemeEngine.h:239
Definition: fs.h:69
Definition: formatinfo.h:28
FontStyle
Font style selector.
Definition: ThemeEngine.h:274
Indicates that the widget is enabled.
Definition: ThemeEngine.h:251
Definition: rect.h:144
DrawLayer _layerToDraw
Definition: ThemeEngine.h:815
Graphics::ManagedSurface _screen
Definition: ThemeEngine.h:804
static const char *const kImageSwitchModeButton
Switch mode button in recorder onscreen dialog.
Definition: ThemeEngine.h:322
Definition: ThemeEngine.h:209
Definition: ThemeEngine.h:343
static const char *const kImageStopSmallButton
Stop recording button in recorder onscreen dialog (for 320xY)
Definition: ThemeEngine.h:324
Indicates that the widget is highlighted by the user.
Definition: ThemeEngine.h:252
Definition: ThemeParser.h:32
Same as kWidgetBackgroundPlain just with a small border.
Definition: ThemeEngine.h:230
static const char *const kImageFastReplayButton
Fast playback mode button in recorder onscreen dialog.
Definition: ThemeEngine.h:323
Definition: dialog.h:49
State
State of the widget to be drawn.
Definition: ThemeEngine.h:249
GraphicsMode _graphicsMode
Definition: ThemeEngine.h:821
int _bytesPerPixel
Definition: ThemeEngine.h:818
Background used for edit text fields.
Definition: ThemeEngine.h:231
const Graphics::PixelFormat getPixelFormat() const
Definition: ThemeEngine.h:380
static const char *const kImageLogo
ScummVM logo used in the launcher.
Definition: ThemeEngine.h:312
Graphics::ManagedSurface _backBuffer
Definition: ThemeEngine.h:807
Definition: system.h:165
Indicates that the widget is disabled, that does NOT include that it is invisible.
Definition: ThemeEngine.h:250
No special post processing.
Definition: ThemeEngine.h:298
static const char *const kImageSwitchModeSmallButton
Switch mode button in recorder onscreen dialog (for 320xY)
Definition: ThemeEngine.h:326
Simple background, this may not include borders.
Definition: ThemeEngine.h:228
Definition: ThemeEngine.h:177
static const char *const kImageEditButton
Edit recording metadata in recorder onscreen dialog.
Definition: ThemeEngine.h:321
static const char *const kImageGrid
Grid image used in save/load chooser selection.
Definition: ThemeEngine.h:319
static const char *const kImageList
List image used in save/load chooser selection.
Definition: ThemeEngine.h:318
GraphicsMode
Definition: ThemeEngine.h:334
Graphics::VectorRenderer * _vectorRenderer
Definition: ThemeEngine.h:795
static const char *const kImageEraser
Clear input image used in the launcher.
Definition: ThemeEngine.h:316
static const char *const kImageFastReplaySmallButton
Fast playback mode button in recorder onscreen dialog (for 320xY)
Definition: ThemeEngine.h:327
Definition: ThemeEngine.h:660
Language
Definition: language.h:45