aboutsummaryrefslogtreecommitdiff
path: root/gui/theme.h
diff options
context:
space:
mode:
Diffstat (limited to 'gui/theme.h')
-rw-r--r--gui/theme.h398
1 files changed, 0 insertions, 398 deletions
diff --git a/gui/theme.h b/gui/theme.h
index 136eccd0a2..d049706b77 100644
--- a/gui/theme.h
+++ b/gui/theme.h
@@ -32,8 +32,6 @@
#include "graphics/surface.h"
#include "graphics/fontman.h"
-#include "gui/widget.h"
-
#define THEME_VERSION 19
namespace GUI {
@@ -247,402 +245,6 @@ private:
static const char *_defaultConfigINI;
int _loadedThemeX, _loadedThemeY;
};
-
-// enable this to disable transparency support for the classic theme
-//#define CT_NO_TRANSPARENCY
-
-class ThemeClassic : public Theme {
-public:
- ThemeClassic(OSystem *system, const Common::String &config = "classic", const Common::ConfigFile *cfg = 0);
- virtual ~ThemeClassic();
-
- bool init();
- void deinit();
-
- void refresh();
-
- void enable();
- void disable();
-
- void openDialog(bool topDialog);
- void closeDialog();
-
- void clearAll();
- void drawAll();
-
- void resetDrawArea();
-
- const Graphics::Font *getFont(FontStyle font) const { return _font; }
- int getFontHeight(FontStyle font = kFontStyleBold) const { if (_initOk) return _font->getFontHeight(); return 0; }
- int getStringWidth(const Common::String &str, FontStyle font) const { if (_initOk) return _font->getStringWidth(str); return 0; }
- int getCharWidth(byte c, FontStyle font) const { if (_initOk) return _font->getCharWidth(c); return 0; }
-
- void drawDialogBackground(const Common::Rect &r, uint16 hints, State state);
- void drawText(const Common::Rect &r, const Common::String &str, State state, TextAlign align, bool inverted, int deltax, bool useEllipsis, FontStyle font);
- void drawChar(const Common::Rect &r, byte ch, const Graphics::Font *font, State state);
-
- void drawWidgetBackground(const Common::Rect &r, uint16 hints, WidgetBackground background, State state);
- void drawButton(const Common::Rect &r, const Common::String &str, State state, uint16 hints);
- void drawSurface(const Common::Rect &r, const Graphics::Surface &surface, State state, int alpha, bool themeTrans);
- void drawSlider(const Common::Rect &r, int width, State state);
- void drawCheckbox(const Common::Rect &r, const Common::String &str, bool checked, State state);
- void drawTab(const Common::Rect &r, int tabHeight, int tabWidth, const Common::Array<Common::String> &tabs, int active, uint16 hints, int titleVPad, State state);
- void drawScrollbar(const Common::Rect &r, int sliderY, int sliderHeight, ScrollbarState, State state);
- void drawPopUpWidget(const Common::Rect &r, const Common::String &sel, int deltax, State state, TextAlign align);
- void drawCaret(const Common::Rect &r, bool erase, State state);
- void drawLineSeparator(const Common::Rect &r, State state);
- void restoreBackground(Common::Rect r, bool special = false);
- bool addDirtyRect(Common::Rect r, bool save = false, bool special = false);
-
- int getTabSpacing() const;
- int getTabPadding() const;
-
-private:
- void box(int x, int y, int width, int height, OverlayColor colorA, OverlayColor colorB, bool skipLastRow = false);
- void box(int x, int y, int width, int height);
-
- OverlayColor getColor(State state);
-
- OSystem *_system;
- Graphics::Surface _screen;
-
-#ifndef CT_NO_TRANSPARENCY
- struct DialogState {
- Graphics::Surface screen;
- } *_dialog;
-
- void blendScreenToDialog();
-#endif
- bool _enableBlending;
-
- bool _forceRedraw;
- bool _initOk;
- bool _enabled;
-
- Common::String _fontName;
- const Graphics::Font *_font;
- OverlayColor _color, _shadowcolor;
- OverlayColor _bgcolor;
- OverlayColor _textcolor;
- OverlayColor _textcolorhi;
-
- enum {
- kColor = 0,
- kShadowColor = 1,
- kBGColor = 2,
- kTextColor = 3,
- kTextColorHi = 4,
- kMaxColors = 5
- };
- uint8 _colors[kMaxColors][3];
-
- void setupConfig();
- bool loadConfig();
-};
-
-#ifndef DISABLE_FANCY_THEMES
-
-class ThemeModern : public Theme {
-public:
- ThemeModern(OSystem *system, const Common::String &stylefile, const Common::ConfigFile *cfg = 0);
- virtual ~ThemeModern();
-
- bool init();
- void deinit();
-
- void refresh();
-
- bool ownCursor() { return _useCursor; }
-
- void enable();
- void disable();
-
- void openDialog(bool topDialog);
- void closeDialog();
-
- void clearAll();
- void drawAll();
-
- void setDrawArea(const Common::Rect &r);
- void resetDrawArea();
-
- const Graphics::Font *getFont(FontStyle font = kFontStyleBold) const { return _fonts[font]; }
- int getFontHeight(FontStyle font = kFontStyleBold) const { if (_fonts[font]) return _fonts[font]->getFontHeight(); return 0; }
- int getStringWidth(const Common::String &str, FontStyle font = kFontStyleBold) const { if (_fonts[font]) return _fonts[font]->getStringWidth(str); return 0; }
- int getCharWidth(byte c, FontStyle font = kFontStyleBold) const { if (_fonts[font]) return _fonts[font]->getCharWidth(c); return 0; }
-
- void drawDialogBackground(const Common::Rect &r, uint16 hints, State state);
- void drawText(const Common::Rect &r, const Common::String &str, State state, TextAlign align, bool inverted, int deltax, bool useEllipsis, FontStyle font);
- void drawChar(const Common::Rect &r, byte ch, const Graphics::Font *font, State state);
-
- void drawWidgetBackground(const Common::Rect &r, uint16 hints, WidgetBackground background, State state);
- void drawButton(const Common::Rect &r, const Common::String &str, State state, uint16 hints);
- void drawSurface(const Common::Rect &r, const Graphics::Surface &surface, State state, int alpha, bool themeTrans);
- void drawSlider(const Common::Rect &r, int width, State state);
- void drawCheckbox(const Common::Rect &r, const Common::String &str, bool checked, State state);
- void drawTab(const Common::Rect &r, int tabHeight, int tabWidth, const Common::Array<Common::String> &tabs, int active, uint16 hints, int titleVPad, State state);
- void drawScrollbar(const Common::Rect &r, int sliderY, int sliderHeight, ScrollbarState, State state);
- void drawPopUpWidget(const Common::Rect &r, const Common::String &sel, int deltax, State state, TextAlign align);
- void drawCaret(const Common::Rect &r, bool erase, State state);
- void drawLineSeparator(const Common::Rect &r, State state);
-
- void restoreBackground(Common::Rect r, bool special = false);
- bool addDirtyRect(Common::Rect r, bool backup = false, bool special = false);
-
- int getTabSpacing() const;
- int getTabPadding() const;
-
- bool supportsImages() const { return true; }
- const Graphics::Surface *getImageSurface(const kThemeImages n) const { return n == kImageLogo ? _images[kThemeLogo] : 0; }
-private:
- void colorFade(const Common::Rect &r, OverlayColor start, OverlayColor end, uint factor = 1);
- void drawRect(const Common::Rect &r, const Graphics::Surface *corner, const Graphics::Surface *top,
- const Graphics::Surface *left, const Graphics::Surface *fill, int alpha, bool skipLastRow = false);
- void drawRectMasked(const Common::Rect &r, const Graphics::Surface *corner, const Graphics::Surface *top,
- const Graphics::Surface *left, const Graphics::Surface *fill, int alpha,
- OverlayColor start, OverlayColor end, uint factor = 1, bool skipLastRow = false, bool skipTopRow = false);
- void drawSurface(const Common::Rect &r, const Graphics::Surface *surf, bool upDown, bool leftRight, int alpha);
- void drawSurfaceMasked(const Common::Rect &r, const Graphics::Surface *surf, bool upDown, bool leftRight, int alpha,
- OverlayColor start, OverlayColor end, uint factor = 1);
-
- enum ShadowStyles {
- kShadowFull = 0,
- kShadowSmall = 1,
- kShadowButton = 2,
- kShadowEmboss = 3,
- kShadowPopUp = 4
- };
-
- Common::Rect shadowRect(const Common::Rect &r, uint32 shadowStyle);
- void drawShadow(const Common::Rect &r, const Graphics::Surface *corner, const Graphics::Surface *top,
- const Graphics::Surface *left, const Graphics::Surface *fill, uint32 shadowStyle, bool skipLastRow = false,
- bool skipTopRow = false);
- void drawShadowRect(const Common::Rect &r, const Common::Rect &area, const Graphics::Surface *corner,
- const Graphics::Surface *top, const Graphics::Surface *left, const Graphics::Surface *fill,
- int alpha, bool skipLastRow = false, bool skipTopRow = false);
-
- int _shadowLeftWidth, _shadowRightWidth;
- int _shadowTopHeight, _shadowBottomHeight;
-
- OSystem *_system;
- Graphics::Surface _screen;
- Common::Rect _shadowDrawArea;
-
- bool _initOk;
- bool _forceRedraw;
- bool _enabled;
-
- int _lastUsedBitMask;
- void resetupGuiRenderer();
- void setupColors();
-
- OverlayColor getColor(State state);
-
- struct DialogState {
- Graphics::Surface screen;
- } *_dialog;
-
- void setupFonts();
- void deleteFonts();
-
- void setupFont(const Common::String &key, const Common::String &name, FontStyle style);
-
- const Graphics::Font *_fonts[kFontStyleMax];
-
-private:
- void processExtraValues();
-
- enum ImageHandles {
- kDialogBkgdCorner = 0,
- kDialogBkgdTop = 1,
- kDialogBkgdLeft = 2,
- kDialogBkgd = 3,
-
- kWidgetBkgdCorner = 4,
- kWidgetBkgdTop = 5,
- kWidgetBkgdLeft = 6,
- kWidgetBkgd = 7,
-
- kCheckboxEmpty = 8,
- kCheckboxChecked = 9,
-
- kWidgetArrow = 10,
-
- kTabBkgdCorner = 11,
- kTabBkgdTop = 12,
- kTabBkgdLeft = 13,
- kTabBkgd = 14,
-
- kSliderBkgdCorner = 15,
- kSliderBkgdTop = 16,
- kSliderBkgdLeft = 17,
- kSliderBkgd = 18,
-
- kSliderCorner = 19,
- kSliderTop = 20,
- kSliderLeft = 21,
- kSlider = 22,
-
- kScrollbarBkgdCorner = 23,
- kScrollbarBkgdTop = 24,
- kScrollbarBkgdLeft = 25,
- kScrollbarBkgd = 26,
-
- kScrollbarCorner = 27,
- kScrollbarTop = 28,
- kScrollbarLeft = 29,
- kScrollbar = 30,
-
- kButtonBkgdCorner = 31,
- kButtonBkgdTop = 32,
- kButtonBkgdLeft = 33,
- kButtonBkgd = 34,
-
- kWidgetSmallBkgdCorner = 35,
- kWidgetSmallBkgdTop = 36,
- kWidgetSmallBkgdLeft = 37,
- kWidgetSmallBkgd = 38,
-
- kThemeLogo = 39,
-
- kPopUpWidgetBkgdCorner = 40,
- kPopUpWidgetBkgdTop = 41,
- kPopUpWidgetBkgdLeft = 42,
- kPopUpWidgetBkgd = 43,
-
- kEditTextBkgdCorner = 44,
- kEditTextBkgdTop = 45,
- kEditTextBkgdLeft = 46,
- kEditTextBkgd = 47,
-
- kGUICursor = 48,
-
- kImageHandlesMax
- };
-
-private:
- int _dimPercentValue;
- typedef OverlayColor (ThemeModern::*InactiveDialogCallback)(OverlayColor col);
- InactiveDialogCallback _dialogShadingCallback;
-
- OverlayColor calcLuminance(OverlayColor col);
- OverlayColor calcDimColor(OverlayColor col);
-
- bool _useCursor;
- void setUpCursor();
- void createCursor();
- int _cursorHotspotX, _cursorHotspotY;
- int _cursorTargetScale;
-#define MAX_CURS_COLORS 255
- byte *_cursor;
- bool _needPaletteUpdates;
- uint _cursorWidth, _cursorHeight;
- byte _cursorPal[4*MAX_CURS_COLORS];
-
-private:
- Common::String _imageHandles[kImageHandlesMax];
- const Graphics::Surface **_images;
-
- enum ColorHandles {
- kMainDialogStart = 0,
- kMainDialogEnd = 1,
-
- kDialogStart = 2,
- kDialogEnd = 3,
-
- kColorStateDisabled = 4,
- kColorStateHighlight = 5,
- kColorStateEnabled = 6,
- kColorTransparency = 7,
-
- kTextInvertedBackground = 8,
- kTextInvertedColor = 9,
-
- kWidgetBackgroundStart = 10,
- kWidgetBackgroundEnd = 11,
- kWidgetBackgroundSmallStart = 12,
- kWidgetBackgroundSmallEnd = 13,
-
- kButtonBackgroundStart = 14,
- kButtonBackgroundEnd = 15,
- kButtonTextEnabled = 16,
- kButtonTextDisabled = 17,
- kButtonTextHighlight = 18,
-
- kSliderBackgroundStart = 19,
- kSliderBackgroundEnd = 20,
- kSliderStart = 21,
- kSliderEnd = 22,
-
- kTabBackgroundStart = 23,
- kTabBackgroundEnd = 24,
-
- kScrollbarBackgroundStart = 25,
- kScrollbarBackgroundEnd = 26,
- kScrollbarButtonStart = 27,
- kScrollbarButtonEnd = 28,
- kScrollbarSliderStart = 29,
- kScrollbarSliderEnd = 30,
-
- kCaretColor = 31,
-
- kSliderHighStart = 32,
- kSliderHighEnd = 33,
-
- kButtonBackgroundHighlightStart = 34,
- kButtonBackgroundHighlightEnd = 35,
-
- kScrollbarButtonHighlightStart = 36,
- kScrollbarButtonHighlightEnd = 37,
- kScrollbarSliderHighlightStart = 38,
- kScrollbarSliderHighlightEnd = 39,
-
- kPopUpWidgetStart = 40,
- kPopUpWidgetEnd = 41,
- kPopUpWidgetHighlightStart = 42,
- kPopUpWidgetHighlightEnd = 43,
-
- kEditTextBackgroundStart = 44,
- kEditTextBackgroundEnd = 45,
-
- kTabActiveStart = 46,
- kTabActiveEnd = 47,
- kTabInactiveStart = 48,
- kTabInactiveEnd = 49,
-
- kColorHandlesMax
- };
-
- OverlayColor _colors[kColorHandlesMax];
-
- enum GradientFactors {
- kMainDialogFactor = 0,
- kDialogFactor = 1,
- kDialogSpecialFactor = 2,
-
- kWidgetSmallFactor = 3,
- kWidgetFactor = 4,
-
- kButtonFactor = 5,
-
- kSliderFactor = 6,
- kSliderBackground = 7,
-
- kTabFactor = 7,
-
- kScrollbarFactor = 8,
- kScrollbarBkgdFactor = 9,
-
- kPopUpWidgetFactor = 10,
-
- kEditTextFactor = 11,
-
- kMaxGradientFactors
- };
-
- uint _gradientFactors[kMaxGradientFactors];
-};
-#endif // DISABLE_FANCY_THEMES
} // end of namespace GUI
#endif // GUI_THEME_H