aboutsummaryrefslogtreecommitdiff
path: root/gui
diff options
context:
space:
mode:
Diffstat (limited to 'gui')
-rw-r--r--gui/credits.h34
-rw-r--r--gui/dialog.cpp6
-rw-r--r--gui/gui-manager.cpp12
-rw-r--r--gui/options.cpp2
-rw-r--r--gui/themes/translations.datbin686139 -> 687024 bytes
-rw-r--r--gui/widget.cpp13
-rw-r--r--gui/widget.h4
-rw-r--r--gui/widgets/list.cpp6
-rw-r--r--gui/widgets/list.h1
-rw-r--r--gui/widgets/scrollcontainer.cpp6
-rw-r--r--gui/widgets/scrollcontainer.h2
-rw-r--r--gui/widgets/tab.cpp7
-rw-r--r--gui/widgets/tab.h2
13 files changed, 79 insertions, 16 deletions
diff --git a/gui/credits.h b/gui/credits.h
index b5d0b5da34..171197a378 100644
--- a/gui/credits.h
+++ b/gui/credits.h
@@ -50,6 +50,14 @@ static const char *credits[] = {
"C2""(retired)",
"C0""Eugene Sandulenko",
"",
+"C1""Access",
+"A0""Arnaud Boutonne",
+"C0""Arnaud Boutonn\351",
+"C0""Paul Gilbert",
+"",
+"C1""ADL",
+"C0""Walter van Niftrik",
+"",
"C1""AGI",
"C0""Stuart George",
"C0""Matthew Hoops",
@@ -73,11 +81,6 @@ static const char *credits[] = {
"C0""Ludvig Strigeus",
"C2""(retired)",
"",
-"C1""Access",
-"A0""Arnaud Boutonne",
-"C0""Arnaud Boutonn\351",
-"C0""Paul Gilbert",
-"",
"C1""Avalanche",
"A0""Peter Bozso",
"C0""Peter Bozs\363",
@@ -87,6 +90,10 @@ static const char *credits[] = {
"C1""BBVS",
"C0""Benjamin Haisch",
"",
+"C1""Blade Runner",
+"C0""Thomas Fach-Pedersen",
+"C0""Peter Kohaut",
+"",
"C1""CGE",
"A0""Arnaud Boutonne",
"C0""Arnaud Boutonn\351",
@@ -134,6 +141,9 @@ static const char *credits[] = {
"C2""(retired)",
"C0""Willem Jan Palenstijn",
"",
+"C1""Fullpipe",
+"C0""Eugene Sandulenko",
+"",
"C1""Gnap",
"A0""Arnaud Boutonne",
"C0""Arnaud Boutonn\351",
@@ -174,6 +184,13 @@ static const char *credits[] = {
"C0""Johannes Schickel",
"C2""(retired)",
"",
+"C1""Lab",
+"A0""Arnaud Boutonne",
+"C0""Arnaud Boutonn\351",
+"C0""Filippos Karapetis",
+"C0""Willem Jan Palenstijn",
+"C0""Eugene Sandulenko",
+"",
"C1""Lastexpress",
"C0""Matthew Hoops",
"C2""(retired)",
@@ -245,6 +262,7 @@ static const char *credits[] = {
"C0""Willem Jan Palenstijn",
"C0""Jordi Vilalta Prat",
"C0""Lars Skovlund",
+"C0""Colin Snover",
"",
"C1""Sherlock",
"C0""Paul Gilbert",
@@ -404,6 +422,10 @@ static const char *credits[] = {
"C0""Yotam Barnoy",
"C0""Joost Peters",
"",
+"C1""PlayStation Vita",
+"C0""Cpasjuste",
+"C0""rsn8887",
+"",
"C1""SDL (Win/Linux/OS X/etc.)",
"C0""Max Horn",
"C2""(retired)",
@@ -883,7 +905,7 @@ static const char *credits[] = {
"C0""",
"C0""John Passfield and Steve Stamatiadis for sharing the source of their classic title, Flight of the Amazon Queen and also being incredibly supportive.",
"C0""",
-"C0""Joe Pearce from The Wyrmkeep Entertainment Co. for sharing the source of their famous title Inherit the Earth and always prompt replies to our questions.",
+"C0""Joe Pearce from The Wyrmkeep Entertainment Co. for sharing the source of their famous title Inherit the Earth, for sharing the source of The Labyrinth of Time and for always replying promptly to our questions.",
"C0""",
"C0""Aric Wilmunder, Ron Gilbert, David Fox, Vince Lee, and all those at LucasFilm/LucasArts who made SCUMM the insane mess to reimplement that it is today. Feel free to drop us a line and tell us what you think, guys!",
"C0""",
diff --git a/gui/dialog.cpp b/gui/dialog.cpp
index 523227a237..d0e5755a59 100644
--- a/gui/dialog.cpp
+++ b/gui/dialog.cpp
@@ -361,11 +361,11 @@ Widget *Dialog::findWidget(const char *name) {
}
void Dialog::removeWidget(Widget *del) {
- if (del == _mouseWidget)
+ if (del == _mouseWidget || del->containsWidget(_mouseWidget))
_mouseWidget = NULL;
- if (del == _focusedWidget)
+ if (del == _focusedWidget || del->containsWidget(_focusedWidget))
_focusedWidget = NULL;
- if (del == _dragWidget)
+ if (del == _dragWidget || del->containsWidget(_dragWidget))
_dragWidget = NULL;
GuiObject::removeWidget(del);
diff --git a/gui/gui-manager.cpp b/gui/gui-manager.cpp
index feb4e50ce2..76f557711d 100644
--- a/gui/gui-manager.cpp
+++ b/gui/gui-manager.cpp
@@ -255,13 +255,13 @@ Dialog *GuiManager::getTopDialog() const {
}
void GuiManager::addToTrash(GuiObject* object, Dialog* parent) {
- debug(7, "Adding Gui Object %p to trash", object);
+ debug(7, "Adding Gui Object %p to trash", (void *)object);
GuiObjectTrashItem t;
t.object = object;
t.parent = 0;
// If a dialog was provided, check it is in the dialog stack
if (parent != 0) {
- for (int i = 0 ; i < _dialogStack.size() ; ++i) {
+ for (uint i = 0 ; i < _dialogStack.size() ; ++i) {
if (_dialogStack[i] == parent) {
t.parent = parent;
break;
@@ -345,11 +345,11 @@ void GuiManager::runLoop() {
// triggered in 3x mode or when running ScummVM under Valgrind.)
if (activeDialog != getTopDialog() && event.type != Common::EVENT_SCREEN_CHANGED) {
processEvent(event, getTopDialog());
- continue;
+ continue;
}
-
+
processEvent(event, activeDialog);
-
+
if (lastRedraw + waitTime < _system->getMillis(true)) {
lastRedraw = _system->getMillis(true);
@@ -362,7 +362,7 @@ void GuiManager::runLoop() {
Common::List<GuiObjectTrashItem>::iterator it = _guiObjectTrash.begin();
while (it != _guiObjectTrash.end()) {
if ((*it).parent == 0 || (*it).parent == activeDialog) {
- debug(7, "Delayed deletion of Gui Object %p", (*it).object);
+ debug(7, "Delayed deletion of Gui Object %p", (void *)(*it).object);
delete (*it).object;
it = _guiObjectTrash.erase(it);
} else
diff --git a/gui/options.cpp b/gui/options.cpp
index 20191e762d..8dcb199f43 100644
--- a/gui/options.cpp
+++ b/gui/options.cpp
@@ -567,7 +567,7 @@ void OptionsDialog::apply() {
if (_enableShaderSettings) {
if (g_system->hasFeature(OSystem::kFeatureShader)) {
if (_shaderPopUp) {
- if (ConfMan.getInt("shader", _domain) != _shaderPopUp->getSelectedTag()) {
+ if (ConfMan.getInt("shader", _domain) != (int32)_shaderPopUp->getSelectedTag()) {
ConfMan.setInt("shader", _shaderPopUp->getSelectedTag(), _domain);
g_system->setShader(_shaderPopUp->getSelectedTag());
}
diff --git a/gui/themes/translations.dat b/gui/themes/translations.dat
index 4b55ad01ee..09ac6064b6 100644
--- a/gui/themes/translations.dat
+++ b/gui/themes/translations.dat
Binary files differ
diff --git a/gui/widget.cpp b/gui/widget.cpp
index 850fad0e5f..4b84e19c09 100644
--- a/gui/widget.cpp
+++ b/gui/widget.cpp
@@ -175,6 +175,15 @@ Widget *Widget::findWidgetInChain(Widget *w, const char *name) {
return 0;
}
+bool Widget::containsWidgetInChain(Widget *w, Widget *search) {
+ while (w) {
+ if (w == search || w->containsWidget(search))
+ return true;
+ w = w->_next;
+ }
+ return false;
+}
+
void Widget::setEnabled(bool e) {
if ((_flags & WIDGET_ENABLED) != e) {
if (e)
@@ -837,6 +846,10 @@ ContainerWidget::~ContainerWidget() {
}
}
+bool ContainerWidget::containsWidget(Widget *w) const {
+ return containsWidgetInChain(_firstWidget, w);
+}
+
Widget *ContainerWidget::findWidget(int x, int y) {
return findWidgetInChain(_firstWidget, x, y);
}
diff --git a/gui/widget.h b/gui/widget.h
index e9343f264c..0da071e596 100644
--- a/gui/widget.h
+++ b/gui/widget.h
@@ -107,6 +107,7 @@ private:
public:
static Widget *findWidgetInChain(Widget *start, int x, int y);
static Widget *findWidgetInChain(Widget *start, const char *name);
+ static bool containsWidgetInChain(Widget *start, Widget *search);
public:
Widget(GuiObject *boss, int x, int y, int w, int h, const char *tooltip = 0);
@@ -158,6 +159,8 @@ public:
const Common::String &getTooltip() const { return _tooltip; }
void setTooltip(const Common::String &tooltip) { _tooltip = tooltip; }
+ virtual bool containsWidget(Widget *) const { return false; }
+
protected:
void updateState(int oldFlags, int newFlags);
@@ -388,6 +391,7 @@ public:
ContainerWidget(GuiObject *boss, const Common::String &name);
~ContainerWidget();
+ virtual bool containsWidget(Widget *) const;
virtual Widget *findWidget(int x, int y);
virtual void removeWidget(Widget *widget);
protected:
diff --git a/gui/widgets/list.cpp b/gui/widgets/list.cpp
index f6e5c67510..48d181e5ec 100644
--- a/gui/widgets/list.cpp
+++ b/gui/widgets/list.cpp
@@ -101,6 +101,12 @@ ListWidget::~ListWidget() {
delete[] _textWidth;
}
+bool ListWidget::containsWidget(Widget *w) const {
+ if (w == _scrollBar || _scrollBar->containsWidget(w))
+ return true;
+ return false;
+}
+
Widget *ListWidget::findWidget(int x, int y) {
if (x >= _w - _scrollBarWidth)
return _scrollBar;
diff --git a/gui/widgets/list.h b/gui/widgets/list.h
index 1abb2b810e..44366be3e9 100644
--- a/gui/widgets/list.h
+++ b/gui/widgets/list.h
@@ -89,6 +89,7 @@ public:
ListWidget(Dialog *boss, int x, int y, int w, int h, const char *tooltip = 0, uint32 cmd = 0);
virtual ~ListWidget();
+ virtual bool containsWidget(Widget *) const;
virtual Widget *findWidget(int x, int y);
void setList(const StringArray &list, const ColorList *colors = 0);
diff --git a/gui/widgets/scrollcontainer.cpp b/gui/widgets/scrollcontainer.cpp
index 9a7792730d..7c5ab6112c 100644
--- a/gui/widgets/scrollcontainer.cpp
+++ b/gui/widgets/scrollcontainer.cpp
@@ -144,6 +144,12 @@ void ScrollContainerWidget::drawWidget() {
g_gui.theme()->drawDialogBackgroundClip(Common::Rect(_x, _y, _x + _w, _y + getHeight() - 1), getBossClipRect(), ThemeEngine::kDialogBackgroundDefault);
}
+bool ScrollContainerWidget::containsWidget(Widget *w) const {
+ if (w == _verticalScroll || _verticalScroll->containsWidget(w))
+ return true;
+ return containsWidgetInChain(_firstWidget, w);
+}
+
Widget *ScrollContainerWidget::findWidget(int x, int y) {
if (_verticalScroll->isVisible() && x >= _w - _verticalScroll->getWidth())
return _verticalScroll;
diff --git a/gui/widgets/scrollcontainer.h b/gui/widgets/scrollcontainer.h
index c2d47370ee..9366a0b658 100644
--- a/gui/widgets/scrollcontainer.h
+++ b/gui/widgets/scrollcontainer.h
@@ -46,6 +46,8 @@ public:
virtual void handleCommand(CommandSender *sender, uint32 cmd, uint32 data);
virtual void reflowLayout();
+ virtual bool containsWidget(Widget *) const;
+
protected:
// We overload getChildY to make sure child widgets are positioned correctly.
// Essentially this compensates for the space taken up by the tab title header.
diff --git a/gui/widgets/tab.cpp b/gui/widgets/tab.cpp
index 9bf9527c4f..e2e3e72db0 100644
--- a/gui/widgets/tab.cpp
+++ b/gui/widgets/tab.cpp
@@ -334,6 +334,13 @@ void TabWidget::draw() {
}
}
+bool TabWidget::containsWidget(Widget *w) const {
+ if (w == _navLeft || w == _navRight || _navLeft->containsWidget(w) || _navRight->containsWidget(w))
+ return true;
+ return containsWidgetInChain(_firstWidget, w);
+}
+
+
Widget *TabWidget::findWidget(int x, int y) {
if (y < _tabHeight) {
if (_navButtonsVisible) {
diff --git a/gui/widgets/tab.h b/gui/widgets/tab.h
index a1a5e06481..fe5e4d82bc 100644
--- a/gui/widgets/tab.h
+++ b/gui/widgets/tab.h
@@ -107,6 +107,8 @@ public:
virtual int getFirstVisible() const;
virtual void setFirstVisible(int tabID, bool adjustIfRoom = false);
+ virtual bool containsWidget(Widget *) const;
+
virtual void reflowLayout();
virtual void draw();