Added ScummVM logo to GMM.

svn-id: r34537
This commit is contained in:
Johannes Schickel 2008-09-14 20:42:50 +00:00
parent 5fdd883327
commit 41312a0ead
7 changed files with 94 additions and 11 deletions

View File

@ -35,6 +35,7 @@
#include "gui/eval.h"
#include "gui/newgui.h"
#include "gui/ListWidget.h"
#include "gui/theme.h"
#include "engines/dialogs.h"
#include "engines/engine.h"
@ -77,7 +78,18 @@ enum {
MainMenuDialog::MainMenuDialog(Engine *engine)
: GlobalDialog("globalmain"), _engine(engine) {
#ifndef DISABLE_FANCY_THEMES
_logo = 0;
if (g_gui.evaluator()->getVar("global_logo.visible") == 1 && g_gui.theme()->supportsImages()) {
_logo = new GUI::GraphicsWidget(this, "global_logo");
_logo->useThemeTransparency(true);
_logo->setGfx(g_gui.theme()->getImageSurface(GUI::Theme::kImageLogoSmall));
} else {
new StaticTextWidget(this, "global_title", "ScummVM");
}
#else
new StaticTextWidget(this, "global_title", "ScummVM");
#endif
new StaticTextWidget(this, "global_version", gScummVMVersionDate);
@ -136,6 +148,37 @@ void MainMenuDialog::handleCommand(CommandSender *sender, uint32 cmd, uint32 dat
}
}
void MainMenuDialog::reflowLayout() {
#ifndef DISABLE_FANCY_THEMES
if (g_gui.evaluator()->getVar("global_logo.visible") == 1 && g_gui.theme()->supportsImages()) {
if (!_logo)
_logo = new GUI::GraphicsWidget(this, "global_logo");
_logo->useThemeTransparency(true);
_logo->setGfx(g_gui.theme()->getImageSurface(GUI::Theme::kImageLogoSmall));
GUI::StaticTextWidget *title = (StaticTextWidget *)findWidget("global_title");
if (title) {
removeWidget(title);
title->setNext(0);
delete title;
}
} else {
GUI::StaticTextWidget *title = (StaticTextWidget *)findWidget("global_title");
if (!title)
new StaticTextWidget(this, "global_title", "ScummVM");
if (_logo) {
removeWidget(_logo);
_logo->setNext(0);
delete _logo;
_logo = 0;
}
}
#endif
Dialog::reflowLayout();
}
enum {
kOKCmd = 'ok '
};

View File

@ -49,9 +49,12 @@ public:
virtual void handleCommand(GUI::CommandSender *sender, uint32 cmd, uint32 data);
virtual void reflowLayout();
protected:
Engine *_engine;
GUI::GraphicsWidget *_logo;
GUI::ButtonWidget *_rtlButton;
GUI::Dialog *_aboutDialog;
GUI::Dialog *_optionsDialog;

View File

@ -1159,6 +1159,15 @@ OverlayColor ThemeModern::getColor(State state) {
return _colors[kColorStateEnabled];
}
const Graphics::Surface *ThemeModern::getImageSurface(const kThemeImages n) const {
if (n == kImageLogo)
return _images[kThemeLogo];
else if (n == kImageLogoSmall)
return _images[kThemeLogoSmall];
else
return 0;
}
void ThemeModern::resetupGuiRenderer() {
if (_lastUsedBitMask == gBitFormat || !_initOk) {
// ok same format no need to reload
@ -1334,6 +1343,7 @@ void ThemeModern::processExtraValues() {
_imageHandles[kWidgetArrow] = _evaluator->getStringVar("pix_widget_arrow");
_imageHandles[kThemeLogo] = _evaluator->getStringVar("pix_theme_logo");
_imageHandles[kThemeLogoSmall] = _evaluator->getStringVar("pix_theme_logo_small");
_imageHandles[kGUICursor] = _evaluator->getStringVar("pix_cursor_image");

View File

@ -82,7 +82,7 @@ public:
int getTabPadding() const;
bool supportsImages() const { return true; }
const Graphics::Surface *getImageSurface(const kThemeImages n) const { return n == kImageLogo ? _images[kThemeLogo] : 0; }
const Graphics::Surface *getImageSurface(const kThemeImages n) const;
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,
@ -193,18 +193,19 @@ private:
kWidgetSmallBkgd = 38,
kThemeLogo = 39,
kThemeLogoSmall = 40,
kPopUpWidgetBkgdCorner = 40,
kPopUpWidgetBkgdTop = 41,
kPopUpWidgetBkgdLeft = 42,
kPopUpWidgetBkgd = 43,
kPopUpWidgetBkgdCorner = 41,
kPopUpWidgetBkgdTop = 42,
kPopUpWidgetBkgdLeft = 43,
kPopUpWidgetBkgd = 44,
kEditTextBkgdCorner = 44,
kEditTextBkgdTop = 45,
kEditTextBkgdLeft = 46,
kEditTextBkgd = 47,
kEditTextBkgdCorner = 45,
kEditTextBkgdTop = 46,
kEditTextBkgdLeft = 47,
kEditTextBkgd = 48,
kGUICursor = 48,
kGUICursor = 49,
kImageHandlesMax
};

View File

@ -356,7 +356,8 @@ public:
//! Special image ids for images used in the GUI
enum kThemeImages {
kImageLogo = 0 //! ScummVM Logo used in the launcher
kImageLogo = 0, //! ScummVM Logo used in the launcher
kImageLogoSmall //! ScummVM logo used in the GMM
};
/**

View File

@ -67,6 +67,7 @@ pix_edittext_bkgd_left="button_bkgd_left.bmp"
pix_edittext_bkgd_bkgd="button_bkgd.bmp"
pix_theme_logo="logo.bmp"
pix_theme_logo_small="logo_small.bmp"
pix_cursor_image="cursor.bmp"
@ -260,6 +261,30 @@ launcher_quit_button=prev.x (prev.y2 + space1) prev.w prev.h
use=scummmain
#### Global Main Menu Dialog
# note that globalmain size depends on overall height
hBorder=10
gmW=(scummmainButtonWidth + (2 * scummmainHOffset) + 80)
global_logo=((gmW - 142) / 2) 25 142 40
global_logo.visible=true
global_version=hBorder (prev.y + prev.h) (gmW - 2 * hBorder) kLineHeight
global_version.align=kTextAlignCenter
gmY=((scummmainVSpace * 7)+ scummmainVAddOff)
globalmain_resume=globalmainHOffset gmY scummmainButtonWidth scummmainButtonHeight
gmY=(gmY + scummmainButtonHeight + scummmainVAddOff)
gmY=(gmY + scummmainVSpace)
globalmain_options=prev.x gmY prev.w prev.h
gmY=(gmY + scummmainButtonHeight + scummmainVAddOff)
globalmain_about=prev.x gmY prev.w prev.h
gmY=(gmY + scummmainButtonHeight + scummmainVAddOff)
gmY=(gmY + scummmainVSpace)
globalmain_rtl=prev.x gmY prev.w prev.h
gmY=(gmY + scummmainButtonHeight + scummmainVAddOff)
globalmain_quit=prev.x gmY prev.w prev.h
gmY=(gmY + scummmainButtonHeight + scummmainVAddOff)
gmH=(gmY + scummmainVSpace)
globalmain=((w - gmW) / 2) ((h - gmH) / 2) gmW gmH
### global options
globaloptions=insetX insetY insetW insetH
set_parent=globaloptions

Binary file not shown.