From 559c19e9f4aa22ab37cbc4af29ea1dae28dd42a4 Mon Sep 17 00:00:00 2001
From: Vicent Marti
Date: Sun, 10 Aug 2008 18:26:14 +0000
Subject: Bugfix: Inverse layout reflowing. Bugfix: Glitches with several
layouts when using Aspect Ratio Correction.
svn-id: r33764
---
gui/ThemeEval.cpp | 10 ++++++++--
gui/ThemeEval.h | 2 +-
gui/ThemeRenderer.cpp | 8 ++++----
gui/themes/scummodern.stx | 27 ++++++++++++++++++++++++++-
gui/themes/scummodern.zip | Bin 30075 -> 109834 bytes
5 files changed, 39 insertions(+), 8 deletions(-)
(limited to 'gui')
diff --git a/gui/ThemeEval.cpp b/gui/ThemeEval.cpp
index ec866cc626..ab9e726b75 100644
--- a/gui/ThemeEval.cpp
+++ b/gui/ThemeEval.cpp
@@ -124,8 +124,11 @@ void ThemeLayoutVertical::reflowLayout() {
if (autoWidget != -1 && autoWidget != (int)i) {
_children[autoWidget]->setHeight(_children[autoWidget]->getHeight() - (_children[i]->getHeight() + _spacing));
- for (int j = autoWidget - 1; j >= 0; --j)
+
+ if (_reverse) for (int j = autoWidget - 1; j >= 0; --j)
_children[j]->setY(-(_children[i]->getHeight() + _spacing));
+ else
+ _children[i]->setY(-2 * (_children[i]->getHeight() + _spacing));
} else {
_h += _children[i]->getHeight() + _spacing;
}
@@ -172,8 +175,11 @@ void ThemeLayoutHorizontal::reflowLayout() {
if (autoWidget != -1 && autoWidget != (int)i) {
_children[autoWidget]->setWidth(_children[autoWidget]->getWidth() - (_children[i]->getWidth() + _spacing));
- for (int j = autoWidget - 1; j >= 0; --j)
+
+ if (_reverse) for (int j = autoWidget - 1; j >= 0; --j)
_children[j]->setX(-(_children[i]->getWidth() + _spacing));
+ else
+ _children[i]->setX(-2 * (_children[i]->getWidth() + _spacing));
} else {
_w += _children[i]->getWidth() + _spacing;
}
diff --git a/gui/ThemeEval.h b/gui/ThemeEval.h
index eecd2db3ee..aaab4cb2bf 100644
--- a/gui/ThemeEval.h
+++ b/gui/ThemeEval.h
@@ -377,7 +377,7 @@ public:
}
void debugDraw(Graphics::Surface *screen, const Graphics::Font *font) {
- _layouts["Dialog.Browser"]->debugDraw(screen, font);
+ _layouts["Dialog.Launcher"]->debugDraw(screen, font);
// _layouts["Dialog.GameOptions_Graphics"]->debugDraw(screen, font);
}
diff --git a/gui/ThemeRenderer.cpp b/gui/ThemeRenderer.cpp
index 73043063a5..1c3a1af8cf 100644
--- a/gui/ThemeRenderer.cpp
+++ b/gui/ThemeRenderer.cpp
@@ -866,11 +866,11 @@ void ThemeRenderer::updateScreen() {
_textQueue.clear();
}
- renderDirtyScreen();
+// renderDirtyScreen();
- // _vectorRenderer->fillSurface();
- // themeEval()->debugDraw(_screen, _font);
- // _vectorRenderer->copyWholeFrame(_system);
+ _vectorRenderer->fillSurface();
+ themeEval()->debugDraw(_screen, _font);
+ _vectorRenderer->copyWholeFrame(_system);
}
void ThemeRenderer::renderDirtyScreen() {
diff --git a/gui/themes/scummodern.stx b/gui/themes/scummodern.stx
index 965008a6e8..d3df1865ca 100644
--- a/gui/themes/scummodern.stx
+++ b/gui/themes/scummodern.stx
@@ -483,6 +483,8 @@
+
+
-
+
+
+
\ No newline at end of file
diff --git a/gui/themes/scummodern.zip b/gui/themes/scummodern.zip
index 2a6f268eb9..e9280529f1 100644
Binary files a/gui/themes/scummodern.zip and b/gui/themes/scummodern.zip differ
--
cgit v1.2.3