[Scummvm-git-logs] scummvm branch-2-8 -> 6aeb738a2dd8b4820c0ac9f1f8a6013e990ec594
sev-
noreply at scummvm.org
Fri Mar 15 14:37:09 UTC 2024
This automated email contains information about 7 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
ef0c7e904f IOS7: Fix left mouse clicks with tap gesture on some devices
d03dc0a37a IOS7: Make project build in Xcode 10.1
862ec93457 IOS7: Fix memory leak when switching 3D framebuffers
e99d662dc7 DOC: Update iOS documentation regarding keyboard input
9380859de0 IOS7: Add backend help information about external keyboards
58bdb24308 GUI: Put backend options tab elements into a ScrollContainer
6aeb738a2d IOS7: Update backend options tab layout
Commit: ef0c7e904f12f17d4f88ed43354ef9cafb8b7eb4
https://github.com/scummvm/scummvm/commit/ef0c7e904f12f17d4f88ed43354ef9cafb8b7eb4
Author: Lars Sundström (l.sundstrom at gmail.com)
Date: 2024-03-15T15:37:02+01:00
Commit Message:
IOS7: Fix left mouse clicks with tap gesture on some devices
Left mouse clicks are generated by tap gestures. To protect against
false mouse clicks the tap gesture is cancelled if the finger is
moved. Normally a tap gesture is generating a touchesBegan event
but doesn't generate any touchesMoved events. But for some devices,
not sure if it's the device or if the screen is broken, a false
touchesMoved event can be triggered even though the coordinates
aren't changed at all.
Add a check to see if the coordinate has changed from when the touch
began to see if the tap gesture should be cancelled or not.
Cherry-pick of: dde3fa0ec3208442fbe2b6e8146eaa3a008bd7f7
Changed paths:
backends/platform/ios7/ios7_video.mm
diff --git a/backends/platform/ios7/ios7_video.mm b/backends/platform/ios7/ios7_video.mm
index 5bfe3287540..71620901454 100644
--- a/backends/platform/ios7/ios7_video.mm
+++ b/backends/platform/ios7/ios7_video.mm
@@ -90,6 +90,7 @@ bool iOS7_fetchEvent(InternalEvent *event) {
UITapGestureRecognizer *twoFingerTapGesture;
UILongPressGestureRecognizer *oneFingerLongPressGesture;
UILongPressGestureRecognizer *twoFingerLongPressGesture;
+ CGPoint touchesBegan;
#endif
}
@@ -628,6 +629,8 @@ bool iOS7_fetchEvent(InternalEvent *event) {
}
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
+ UITouch *touch = [touches anyObject];
+ touchesBegan = [touch locationInView:self];
for (GameController *c : _controllers) {
if ([c isKindOfClass:TouchController.class]) {
[(TouchController *)c touchesBegan:touches withEvent:event];
@@ -637,8 +640,13 @@ bool iOS7_fetchEvent(InternalEvent *event) {
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
#if TARGET_OS_IOS
- [oneFingerTapGesture setState:UIGestureRecognizerStateCancelled];
- [twoFingerTapGesture setState:UIGestureRecognizerStateCancelled];
+ UITouch *touch = [touches anyObject];
+ CGPoint touchesMoved = [touch locationInView:self];
+ if (touchesBegan.x != touchesMoved.x ||
+ touchesBegan.y != touchesMoved.y) {
+ [oneFingerTapGesture setState:UIGestureRecognizerStateCancelled];
+ [twoFingerTapGesture setState:UIGestureRecognizerStateCancelled];
+ }
#endif
for (GameController *c : _controllers) {
if ([c isKindOfClass:TouchController.class]) {
Commit: d03dc0a37af82dbd18ccc690f6460e89d0e8b6cd
https://github.com/scummvm/scummvm/commit/d03dc0a37af82dbd18ccc690f6460e89d0e8b6cd
Author: Lars Sundström (l.sundstrom at gmail.com)
Date: 2024-03-15T15:37:02+01:00
Commit Message:
IOS7: Make project build in Xcode 10.1
Builtin checks are not present in older Xcode versions. Add macros
to check the target iOS version.
Cherry-pick of: 975ac38f726f9b7acf0258d49da63ca8322f5525
Changed paths:
backends/platform/ios7/ios7_keyboard.mm
backends/platform/ios7/ios7_mouse_controller.mm
backends/platform/ios7/ios7_video.mm
diff --git a/backends/platform/ios7/ios7_keyboard.mm b/backends/platform/ios7/ios7_keyboard.mm
index 9a7f316646e..1f8d3df746d 100644
--- a/backends/platform/ios7/ios7_keyboard.mm
+++ b/backends/platform/ios7/ios7_keyboard.mm
@@ -321,14 +321,17 @@
}
- (NSArray *)overloadFnKeys {
+#ifdef __IPHONE_13_4
if (@available(iOS 13.4, *)) {
NSArray<NSString *> *fnKeys = [[NSArray alloc] initWithObjects:UIKeyInputF1, UIKeyInputF2, UIKeyInputF3, UIKeyInputF4, UIKeyInputF5, UIKeyInputF6, UIKeyInputF7, UIKeyInputF8, UIKeyInputF9, UIKeyInputF10, UIKeyInputF11, UIKeyInputF12, nil];
return [self overloadKeys:fnKeys withSelector:@selector(handleFnKey:)];
}
+#endif
return nil;
}
- (NSArray *)overloadSpecialKeys {
+#ifdef __IPHONE_13_4
NSMutableArray<NSString *> *specialKeys = [[NSMutableArray alloc] initWithObjects:UIKeyInputEscape, UIKeyInputPageUp, UIKeyInputPageDown, nil];
if (@available(iOS 13.4, *)) {
@@ -336,6 +339,9 @@
[specialKeys addObject: UIKeyInputEnd];
}
return [self overloadKeys:specialKeys withSelector:@selector(handleSpecialKey:)];
+#else
+ return nil;
+#endif
}
- (int)convertModifierFlags:(UIKeyModifierFlags)flags {
@@ -422,6 +428,7 @@
}
- (void)handleFnKey:(UIKeyCommand *)keyCommand {
+#ifdef __IPHONE_13_4
if (@available(iOS 13.4, *)) {
if (keyCommand.input == UIKeyInputF1) {
[self fn1Key];
@@ -449,9 +456,11 @@
[self fn12Key];
}
}
+#endif
}
- (void)handleSpecialKey:(UIKeyCommand *)keyCommand {
+#ifdef __IPHONE_13_4
if (keyCommand.input == UIKeyInputEscape) {
[self escapeKey:keyCommand];
} else if (keyCommand.input == UIKeyInputPageUp) {
@@ -466,6 +475,7 @@
[softKeyboard handleKeyPress:Common::KEYCODE_END withModifierFlags:[self convertModifierFlags:keyCommand.modifierFlags]];
}
}
+#endif
}
- (NSArray *)keyCommands {
@@ -628,6 +638,7 @@
// Base the new frame size on the current parent frame size
CGRect newFrame = self.superview.frame;
+#ifdef __IPHONE_14_0
if (@available(iOS 14.0, tvOS 14.0, *)) {
if (GCKeyboard.coalescedKeyboard != nil) {
if (didShow) {
@@ -644,7 +655,7 @@
} else {
newFrame.size.height += (keyboardFrame.size.height) * (didShow ? -1 : 1);
}
-
+#endif
// Resize with a fancy animation
NSNumber *rate = notification.userInfo[UIKeyboardAnimationDurationUserInfoKey];
[UIView animateWithDuration:rate.floatValue animations:^{
@@ -681,11 +692,13 @@
- (void)keyboardDidDisconnect:(NSNotification*)notification
{
+#ifdef __IPHONE_14_0
if (@available(iOS 14.0, tvOS 14.0, *)) {
if (GCKeyboard.coalescedKeyboard == nil) {
[inputView endEditing:YES];
}
}
+#endif
}
#endif
@@ -703,6 +716,7 @@
name:UIKeyboardDidHideNotification
object:nil];
#endif
+#ifdef __IPHONE_14_0
if (@available(iOS 14.0, tvOS 14.0, *)) {
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(keyboardDidConnect:)
@@ -714,6 +728,7 @@
name:GCKeyboardDidDisconnectNotification
object:nil];
}
+#endif
inputDelegate = nil;
inputView = [[TextInputHandler alloc] initWithKeyboard:self];
@@ -724,6 +739,7 @@
_keyboardVisible = NO;
_inputAccessoryHeight = 0.0f;
+#ifdef __IPHONE_14_0
if (@available(iOS 14.0, tvOS 14.0, *)) {
// If already connected to a HW keyboard, start
// monitoring key presses
@@ -731,6 +747,7 @@
[inputView becomeFirstResponder];
}
}
+#endif
return self;
}
@@ -771,6 +788,7 @@
}
- (void)showKeyboard {
+#ifdef __IPHONE_14_0
if (@available(iOS 14.0, tvOS 14.0, *)) {
if ([inputView isFirstResponder] &&
GCKeyboard.coalescedKeyboard != nil) {
@@ -780,10 +798,12 @@
return;
}
}
+#endif
[inputView becomeFirstResponder];
}
- (void)hideKeyboard {
+#ifdef __IPHONE_14_0
if (@available(iOS 14.0, tvOS 14.0, *)) {
if ([inputView isFirstResponder] &&
GCKeyboard.coalescedKeyboard != nil) {
@@ -793,6 +813,7 @@
return;
}
}
+#endif
[inputView endEditing:YES];
}
diff --git a/backends/platform/ios7/ios7_mouse_controller.mm b/backends/platform/ios7/ios7_mouse_controller.mm
index 6772d6db932..cf35a2e6375 100644
--- a/backends/platform/ios7/ios7_mouse_controller.mm
+++ b/backends/platform/ios7/ios7_mouse_controller.mm
@@ -46,9 +46,10 @@
object:nil];
}
+#ifdef __IPHONE_14_0
_dxReminder = 0.0;
_dyReminder = 0.0;
-
+#endif
return self;
}
diff --git a/backends/platform/ios7/ios7_video.mm b/backends/platform/ios7/ios7_video.mm
index 71620901454..0e56821e8bd 100644
--- a/backends/platform/ios7/ios7_video.mm
+++ b/backends/platform/ios7/ios7_video.mm
@@ -391,12 +391,13 @@ bool iOS7_fetchEvent(InternalEvent *event) {
#if TARGET_OS_IOS
- (void)triggerTouchModeChanged {
BOOL hwKeyboardConnected = NO;
+#ifdef __IPHONE_14_0
if (@available(iOS 14.0, *)) {
if (GCKeyboard.coalescedKeyboard != nil) {
hwKeyboardConnected = YES;
}
}
-
+#endif
if ([self isKeyboardShown] && !hwKeyboardConnected) {
[self hideKeyboard];
} else {
@@ -426,9 +427,11 @@ bool iOS7_fetchEvent(InternalEvent *event) {
}
- (BOOL)isiOSAppOnMac {
+#ifdef __IPHONE_14_0
if (@available(iOS 14.0, *)) {
return [NSProcessInfo processInfo].isiOSAppOnMac;
}
+#endif
return NO;
}
#endif
Commit: 862ec93457b127eb7a89f2a341bbacec5f0c3063
https://github.com/scummvm/scummvm/commit/862ec93457b127eb7a89f2a341bbacec5f0c3063
Author: Lars Sundström (l.sundstrom at gmail.com)
Date: 2024-03-15T15:37:02+01:00
Commit Message:
IOS7: Fix memory leak when switching 3D framebuffers
When a 3D game does not support arbitrary resolutions a framebuffer
has to be created. The initSize method can be called multiple times
with different resolutions. Make sure to delete any existing
framebuffer before creating a new.
Cherry-pick of: 69554e0e52005be335aba0693e8d36a601ec1d8e
Changed paths:
backends/graphics3d/ios/ios-graphics3d.cpp
diff --git a/backends/graphics3d/ios/ios-graphics3d.cpp b/backends/graphics3d/ios/ios-graphics3d.cpp
index d35219a18e0..05e30e4804c 100644
--- a/backends/graphics3d/ios/ios-graphics3d.cpp
+++ b/backends/graphics3d/ios/ios-graphics3d.cpp
@@ -226,6 +226,9 @@ void iOSGraphics3dManager::initSize(uint w, uint h, const Graphics::PixelFormat
bool engineSupportsArbitraryResolutions = !g_engine ||
g_engine->hasFeature(Engine::kSupportsArbitraryResolutions);
if (!engineSupportsArbitraryResolutions) {
+ if (_frameBuffer) {
+ delete _frameBuffer;
+ }
// If the game can't adapt to any resolution, render it to a framebuffer
// so it can be scaled to fill the available space.
_frameBuffer = new OpenGL::FrameBuffer(w, h);
Commit: e99d662dc7a7c359dc54c1be7cae7eb4ae83fde4
https://github.com/scummvm/scummvm/commit/e99d662dc7a7c359dc54c1be7cae7eb4ae83fde4
Author: Lars Sundström (l.sundstrom at gmail.com)
Date: 2024-03-15T15:37:02+01:00
Commit Message:
DOC: Update iOS documentation regarding keyboard input
Add description about special keys.
Cherry-pick of: 05aaa3195dc511910a1866f7531ca34539059227
Changed paths:
doc/docportal/other_platforms/ios.rst
diff --git a/doc/docportal/other_platforms/ios.rst b/doc/docportal/other_platforms/ios.rst
index a98f02ba6c1..b8b86021e03 100644
--- a/doc/docportal/other_platforms/ios.rst
+++ b/doc/docportal/other_platforms/ios.rst
@@ -80,6 +80,26 @@ Keyboard
^^^^^^^^^^^^^^^^^^^^
If no external keyboard is connected, the pinch gesture shows and hides the onscreen keyboard. When an external keyboard is connected the inputs from the external keyboard is enaled by default.
+External keyboards are supported and from iOS 13.4 most of the special keys, e.g. function keys, Home and End, are mapped.
+For external keyboards missing the special keys, e.g. the Apple Magic Keyboard for iPads, the special keys can be triggered using the following key combinations:
+
+.. csv-table::
+ :widths: 40 60
+ :header-rows: 1
+ :class: keyboard
+
+ Key combination, Action
+ CMD + 1, F1
+ CMD + 2, F2
+ "..." , "..."
+ CMD + 0, F10
+ CMD + SHIFT 1, F11
+ CMD + SHIFT 2, F12
+ CMD + UP, PAGE UP
+ CMD + DOWN, PAGE DOWN
+ CMD + LEFT, HOME
+ CMD + RIGHT, END
+
Game controllers
^^^^^^^^^^^^^^^^^^^^
Commit: 9380859de015aae83693f418e604e0449ac37706
https://github.com/scummvm/scummvm/commit/9380859de015aae83693f418e604e0449ac37706
Author: Lars Sundström (l.sundstrom at gmail.com)
Date: 2024-03-15T15:37:02+01:00
Commit Message:
IOS7: Add backend help information about external keyboards
Add tab describing the external keyboard support.
Cherry-pick of: b34b5ba2f16ba815e5b88cd5c2bd1cadf6386c01
Changed paths:
backends/platform/ios7/ios7_osys_misc.mm
diff --git a/backends/platform/ios7/ios7_osys_misc.mm b/backends/platform/ios7/ios7_osys_misc.mm
index 3cf57583964..02cf68b28fb 100644
--- a/backends/platform/ios7/ios7_osys_misc.mm
+++ b/backends/platform/ios7/ios7_osys_misc.mm
@@ -311,7 +311,28 @@ _s(
" {w=10em}\n"
"\n"
),
-
+_s("External keyboard"),
+"",
+_s(
+"## Use of keyboard\n"
+"External keyboards are supported and from iOS 13.4 most of the special keys, e.g. function keys, Home and End, are mapped. \n"
+"For external keyboards missing the special keys, e.g. the Apple Magic Keyboard for iPads, the special keys can be triggered using the following key combinations: \n"
+"\n"
+"\n"
+"| Key combination | Action \n"
+"| ------------------|-------------------\n"
+"| `CMD + 1` | F1 \n"
+"| `CMD + 2` | F2 \n"
+"| `...` | ... \n"
+"| `CMD + 0` | F10 \n"
+"| `CMD + SHIFT + 1` | F11 \n"
+"| `CMD + SHIFT + 2` | F12 \n"
+"| `CMD + UP` | PAGE UP \n"
+"| `CMD + DOWN` | PAGE DOWN \n"
+"| `CMD + LEFT` | HOME \n"
+"| `CMD + RIGHT` | END \n"
+"\n"
+),
_s("Adding Games"),
"ios-help.zip",
_s(
Commit: 58bdb24308c32d2259769e5a89614a073dda3015
https://github.com/scummvm/scummvm/commit/58bdb24308c32d2259769e5a89614a073dda3015
Author: Lars Sundström (l.sundstrom at gmail.com)
Date: 2024-03-15T15:37:02+01:00
Commit Message:
GUI: Put backend options tab elements into a ScrollContainer
The backend options tab is for backend specific options. The backends
supporting it implements the function buildBackendOptionsWidget which
defines the options elements and layout.
The backend options tab layout may differ depending on the current
domain. The options in the "Global options" tab applies to all games
while the options in the "Game options" tab only applies to a specific
game. The options in the "Global config" options tab can be set during
game play. Some options, e.g. graphics cannot be changed while running
the game while backend options can.
The first version of the backend options tab was a non-scrollable
container. The "Game options" tab includes an "Override Global options
checkbox" which, when checked, enables the options defined by the
backend.
The number of iOS7 backend options increased rapidly which caused some
options to fall outside the tab container on screens with limited
space in height. An attempt to fix that was made by the same creator
of this commit in the commit: 8db736f1559b
The attempt was not perfect in any way, else this commit wouldn't
exist... The "Override Global options checkbox" on the "Game options"
tab became misplaced. It also required the backend to add padding
to GUI elements it shouldn't know of.
To fix this properly put the backend options tab in a single Scroll-
Container. This way the "Override Global options checkbox" can be
properly placed related to the backend options widgets. All backend
options can also be accessed in every backend options tab layout,
Global options, Game options and Global config thanks to the scrollbar
automatically provided by the ScrollContainer.
Update all themes with the new layout.
Cherry-pick of: 3c36c1fbc34a1ac6be8b1d8d9c89966aab2f3671
Changed paths:
engines/dialogs.cpp
gui/editgamedialog.cpp
gui/options.cpp
gui/themes/common/highres_layout.stx
gui/themes/common/lowres_layout.stx
gui/themes/residualvm.zip
gui/themes/scummclassic.zip
gui/themes/scummclassic/classic_layout.stx
gui/themes/scummclassic/classic_layout_lowres.stx
gui/themes/scummmodern.zip
gui/themes/scummremastered.zip
diff --git a/engines/dialogs.cpp b/engines/dialogs.cpp
index fed52f81774..1e3b1aca1f5 100644
--- a/engines/dialogs.cpp
+++ b/engines/dialogs.cpp
@@ -36,6 +36,7 @@
#include "gui/ThemeEval.h"
#include "gui/widget.h"
#include "gui/widgets/tab.h"
+#include "gui/widgets/scrollcontainer.h"
#include "graphics/font.h"
@@ -347,7 +348,11 @@ ConfigDialog::ConfigDialog() :
//
int backendTabId = tab->addTab(_("Backend"), "GlobalConfig_Backend", false);
- _backendOptions = g_system->buildBackendOptionsWidget(tab, "GlobalConfig_Backend.Container", gameDomain);
+ ScrollContainerWidget *backendContainer = new ScrollContainerWidget(tab, "GlobalConfig_Backend.Container", "GlobalConfig_Backend_Container");
+ backendContainer->setBackgroundType(ThemeEngine::kWidgetBackgroundNo);
+ backendContainer->setTarget(this);
+
+ _backendOptions = g_system->buildBackendOptionsWidget(backendContainer, "GlobalConfig_Backend_Container.Container", gameDomain);
if (_backendOptions) {
_backendOptions->setParentDialog(this);
diff --git a/gui/editgamedialog.cpp b/gui/editgamedialog.cpp
index f0639a2517a..400c602e241 100644
--- a/gui/editgamedialog.cpp
+++ b/gui/editgamedialog.cpp
@@ -218,13 +218,17 @@ EditGameDialog::EditGameDialog(const Common::String &domain)
//
int backendTabId = tab->addTab(_("Backend"), "GameOptions_Backend", false);
+ ScrollContainerWidget *backendContainer = new ScrollContainerWidget(tab, "GameOptions_Backend.Container", "GameOptions_Backend_Container");
+ backendContainer->setBackgroundType(ThemeEngine::kWidgetBackgroundNo);
+ backendContainer->setTarget(this);
+
if (!g_gui.useLowResGUI())
- _globalBackendOverride = new CheckboxWidget(tab, "GameOptions_Backend.EnableTabCheckbox", _("Override global backend settings"), Common::U32String(), kCmdGlobalBackendOverride);
+ _globalBackendOverride = new CheckboxWidget(backendContainer, "GameOptions_Backend_Container.EnableTabCheckbox", _("Override global backend settings"), Common::U32String(), kCmdGlobalBackendOverride);
else
- _globalBackendOverride = new CheckboxWidget(tab, "GameOptions_Backend.EnableTabCheckbox", _c("Override global backend settings", "lowres"), Common::U32String(), kCmdGlobalBackendOverride);
+ _globalBackendOverride = new CheckboxWidget(backendContainer, "GameOptions_Backend_Container.EnableTabCheckbox", _c("Override global backend settings", "lowres"), Common::U32String(), kCmdGlobalBackendOverride);
g_system->registerDefaultSettings(_domain);
- _backendOptions = g_system->buildBackendOptionsWidget(tab, "GameOptions_Backend.Container", _domain);
+ _backendOptions = g_system->buildBackendOptionsWidget(backendContainer, "GameOptions_Backend_Container.Container", _domain);
if (_backendOptions) {
_backendOptions->setParentDialog(this);
diff --git a/gui/options.cpp b/gui/options.cpp
index 64d5a5326a2..5f9e785381f 100644
--- a/gui/options.cpp
+++ b/gui/options.cpp
@@ -2232,8 +2232,12 @@ void GlobalOptionsDialog::build() {
//
int backendTabId = tab->addTab(_("Backend"), "GlobalOptions_Backend", false);
+ ScrollContainerWidget *backendContainer = new ScrollContainerWidget(tab, "GlobalOptions_Backend.Container", "GlobalOptions_Backend_Container");
+ backendContainer->setBackgroundType(ThemeEngine::kWidgetBackgroundNo);
+ backendContainer->setTarget(this);
+
g_system->registerDefaultSettings(_domain);
- _backendOptions = g_system->buildBackendOptionsWidget(tab, "GlobalOptions_Backend.Container", _domain);
+ _backendOptions = g_system->buildBackendOptionsWidget(backendContainer, "GlobalOptions_Backend_Container.Container", _domain);
if (_backendOptions) {
_backendOptions->setParentDialog(this);
diff --git a/gui/themes/common/highres_layout.stx b/gui/themes/common/highres_layout.stx
index 05a2b970f52..92e4a1938b4 100644
--- a/gui/themes/common/highres_layout.stx
+++ b/gui/themes/common/highres_layout.stx
@@ -709,6 +709,12 @@
</layout>
</dialog>
+ <dialog name = 'GlobalOptions_Backend_Container' overlays = 'GlobalOptions_Backend.Container'>
+ <layout type = 'vertical' padding = '0, 0, 0, 0'>
+ <widget name = 'Container'/>
+ </layout>
+ </dialog>
+
<dialog name = 'GlobalOptions_Graphics' overlays = 'Dialog.GlobalOptions.TabWidget'>
<layout type = 'vertical' padding = '0, 0, 0, 0'>
<widget name = 'Container'
@@ -1643,15 +1649,23 @@
<dialog name = 'GameOptions_Backend' overlays = 'Dialog.GameOptions.TabWidget'>
<layout type = 'vertical' padding = '0, 0, 0, 0'>
- <widget name = 'EnableTabCheckbox'
- type = 'Checkbox'
- />
<widget name = 'Container'
type = 'ScrollContainerWidget'
/>
</layout>
</dialog>
+ <dialog name = 'GameOptions_Backend_Container' overlays = 'GameOptions_Backend.Container'>
+ <layout type = 'vertical' padding = '0, 0, 0, 0'>
+ <layout type = 'vertical' padding = '16, 16, 16, 16' spacing = '8'>
+ <widget name = 'EnableTabCheckbox'
+ type = 'Checkbox'
+ />
+ </layout>
+ <import layout = 'Dialog.GlobalOptions_Backend_Container' />
+ </layout>
+ </dialog>
+
<dialog name = 'GameOptions_Achievements' overlays = 'Dialog.GameOptions.TabWidget'>
<layout type = 'vertical' padding = '0, 0, 0, 0'>
<widget name = 'Container'
@@ -1957,6 +1971,12 @@
</layout>
</dialog>
+ <dialog name = 'GlobalConfig_Backend_Container' overlays = 'GlobalConfig_Backend.Container'>
+ <layout type = 'vertical' padding = '0, 0, 0, 0'>
+ <import layout = 'Dialog.GlobalOptions_Backend_Container' />
+ </layout>
+ </dialog>
+
<dialog name = 'GlobalConfig_Achievements' overlays = 'Dialog.GlobalConfig.TabWidget'>
<layout type = 'vertical' padding = '0, 0, 0, 0'>
<widget name = 'Container'
diff --git a/gui/themes/common/lowres_layout.stx b/gui/themes/common/lowres_layout.stx
index f7ea53f6b56..a5d8f9c4ee3 100644
--- a/gui/themes/common/lowres_layout.stx
+++ b/gui/themes/common/lowres_layout.stx
@@ -549,6 +549,12 @@
</layout>
</dialog>
+ <dialog name = 'GlobalOptions_Backend_Container' overlays = 'GlobalOptions_Backend.Container'>
+ <layout type = 'vertical' padding = '0, 0, 0, 0'>
+ <widget name = 'Container'/>
+ </layout>
+ </dialog>
+
<dialog name = 'GlobalOptions_Graphics' overlays = 'Dialog.GlobalOptions.TabWidget'>
<layout type = 'vertical' padding = '0, 0, 0, 0'>
<widget name = 'Container'
@@ -1473,15 +1479,23 @@
<dialog name = 'GameOptions_Backend' overlays = 'Dialog.GameOptions.TabWidget'>
<layout type = 'vertical' padding = '0, 0, 0, 0'>
- <widget name = 'EnableTabCheckbox'
- type = 'Checkbox'
- />
<widget name = 'Container'
type = 'ScrollContainerWidget'
/>
</layout>
</dialog>
+ <dialog name = 'GameOptions_Backend_Container' overlays = 'GameOptions_Backend.Container'>
+ <layout type = 'vertical' padding = '0, 0, 0, 0'>
+ <layout type = 'vertical' padding = '16, 16, 16, 16' spacing = '8'>
+ <widget name = 'EnableTabCheckbox'
+ type = 'Checkbox'
+ />
+ </layout>
+ <import layout = 'Dialog.GlobalOptions_Backend_Container' />
+ </layout>
+ </dialog>
+
<dialog name = 'GameOptions_Achievements' overlays = 'Dialog.GameOptions.TabWidget'>
<layout type = 'vertical' padding = '0, 0, 0, 0'>
<widget name = 'Container'
@@ -1793,6 +1807,12 @@
</layout>
</dialog>
+ <dialog name = 'GlobalConfig_Backend_Container' overlays = 'GlobalConfig_Backend.Container'>
+ <layout type = 'vertical' padding = '0, 0, 0, 0'>
+ <import layout = 'Dialog.GlobalOptions_Backend_Container' />
+ </layout>
+ </dialog>
+
<dialog name = 'GlobalConfig_Achievements' overlays = 'Dialog.GlobalConfig.TabWidget'>
<layout type = 'vertical' padding = '0, 0, 0, 0'>
<widget name = 'Container'
diff --git a/gui/themes/residualvm.zip b/gui/themes/residualvm.zip
index 288fb6aa8b4..d737214da8f 100644
Binary files a/gui/themes/residualvm.zip and b/gui/themes/residualvm.zip differ
diff --git a/gui/themes/scummclassic.zip b/gui/themes/scummclassic.zip
index 03377badcad..b86daeefb09 100644
Binary files a/gui/themes/scummclassic.zip and b/gui/themes/scummclassic.zip differ
diff --git a/gui/themes/scummclassic/classic_layout.stx b/gui/themes/scummclassic/classic_layout.stx
index 5af79cd38b9..6de846c447b 100644
--- a/gui/themes/scummclassic/classic_layout.stx
+++ b/gui/themes/scummclassic/classic_layout.stx
@@ -387,6 +387,12 @@
</layout>
</dialog>
+ <dialog name = 'GlobalOptions_Backend_Container' overlays = 'GlobalOptions_Backend.Container'>
+ <layout type = 'vertical' padding = '0, 0, 0, 0'>
+ <widget name = 'Container'/>
+ </layout>
+ </dialog>
+
<dialog name = 'GlobalOptions_Graphics' overlays = 'Dialog.GlobalOptions.TabWidget'>
<layout type = 'vertical' padding = '0, 0, 0, 0'>
<widget name = 'Container'
@@ -1290,15 +1296,23 @@
<dialog name = 'GameOptions_Backend' overlays = 'Dialog.GameOptions.TabWidget'>
<layout type = 'vertical' padding = '0, 0, 0, 0'>
- <widget name = 'EnableTabCheckbox'
- type = 'Checkbox'
- />
<widget name = 'Container'
type = 'ScrollContainerWidget'
/>
</layout>
</dialog>
+ <dialog name = 'GameOptions_Backend_Container' overlays = 'GameOptions_Backend.Container'>
+ <layout type = 'vertical' padding = '0, 0, 0, 0'>
+ <layout type = 'vertical' padding = '16, 16, 16, 16' spacing = '8'>
+ <widget name = 'EnableTabCheckbox'
+ type = 'Checkbox'
+ />
+ </layout>
+ <import layout = 'Dialog.GlobalOptions_Backend_Container' />
+ </layout>
+ </dialog>
+
<dialog name = 'GameOptions_Achievements' overlays = 'Dialog.GameOptions.TabWidget'>
<layout type = 'vertical' padding = '0, 0, 0, 0'>
<widget name = 'Container'
@@ -1604,6 +1618,12 @@
</layout>
</dialog>
+ <dialog name = 'GlobalConfig_Backend_Container' overlays = 'GlobalConfig_Backend.Container'>
+ <layout type = 'vertical' padding = '0, 0, 0, 0'>
+ <import layout = 'Dialog.GlobalOptions_Backend_Container' />
+ </layout>
+ </dialog>
+
<dialog name = 'GlobalConfig_Achievements' overlays = 'Dialog.GlobalConfig.TabWidget'>
<layout type = 'vertical' padding = '0, 0, 0, 0'>
<widget name = 'Container'
diff --git a/gui/themes/scummclassic/classic_layout_lowres.stx b/gui/themes/scummclassic/classic_layout_lowres.stx
index c557465da14..1b591688485 100644
--- a/gui/themes/scummclassic/classic_layout_lowres.stx
+++ b/gui/themes/scummclassic/classic_layout_lowres.stx
@@ -394,6 +394,12 @@
</layout>
</dialog>
+ <dialog name = 'GlobalOptions_Backend_Container' overlays = 'GlobalOptions_Backend.Container'>
+ <layout type = 'vertical' padding = '0, 0, 0, 0'>
+ <widget name = 'Container'/>
+ </layout>
+ </dialog>
+
<dialog name = 'GlobalOptions_Graphics' overlays = 'Dialog.GlobalOptions.TabWidget'>
<layout type = 'vertical' padding = '0, 0, 0, 0'>
<widget name = 'Container'
@@ -1302,15 +1308,23 @@
<dialog name = 'GameOptions_Backend' overlays = 'Dialog.GameOptions.TabWidget'>
<layout type = 'vertical' padding = '0, 0, 0, 0'>
- <widget name = 'EnableTabCheckbox'
- type = 'Checkbox'
- />
<widget name = 'Container'
type = 'ScrollContainerWidget'
/>
</layout>
</dialog>
+ <dialog name = 'GameOptions_Backend_Container' overlays = 'GameOptions_Backend.Container'>
+ <layout type = 'vertical' padding = '0, 0, 0, 0'>
+ <layout type = 'vertical' padding = '16, 16, 16, 16' spacing = '8'>
+ <widget name = 'EnableTabCheckbox'
+ type = 'Checkbox'
+ />
+ </layout>
+ <import layout = 'Dialog.GlobalOptions_Backend_Container' />
+ </layout>
+ </dialog>
+
<dialog name = 'GameOptions_Achievements' overlays = 'Dialog.GameOptions.TabWidget'>
<layout type = 'vertical' padding = '0, 0, 0, 0'>
<widget name = 'Container'
@@ -1621,6 +1635,12 @@
</layout>
</dialog>
+ <dialog name = 'GlobalConfig_Backend_Container' overlays = 'GlobalConfig_Backend.Container'>
+ <layout type = 'vertical' padding = '0, 0, 0, 0'>
+ <import layout = 'Dialog.GlobalOptions_Backend_Container' />
+ </layout>
+ </dialog>
+
<dialog name = 'GlobalConfig_Achievements' overlays = 'Dialog.GlobalConfig.TabWidget'>
<layout type = 'vertical' padding = '0, 0, 0, 0'>
<widget name = 'Container'
diff --git a/gui/themes/scummmodern.zip b/gui/themes/scummmodern.zip
index c7d8a842f22..2ba591806fe 100644
Binary files a/gui/themes/scummmodern.zip and b/gui/themes/scummmodern.zip differ
diff --git a/gui/themes/scummremastered.zip b/gui/themes/scummremastered.zip
index 6feb442cb40..421c41b9f22 100644
Binary files a/gui/themes/scummremastered.zip and b/gui/themes/scummremastered.zip differ
Commit: 6aeb738a2dd8b4820c0ac9f1f8a6013e990ec594
https://github.com/scummvm/scummvm/commit/6aeb738a2dd8b4820c0ac9f1f8a6013e990ec594
Author: Lars Sundström (l.sundstrom at gmail.com)
Date: 2024-03-15T15:37:02+01:00
Commit Message:
IOS7: Update backend options tab layout
The backend options widget is now in a scrollcontainer widget.
Change the options widget to not be scrollable since the parent
widget is and remove unnecessary padding.
Cherry-pick of: 15be37dd64b57703ab821f13a4b34d1665202f13
Changed paths:
backends/platform/ios7/ios7_options.mm
diff --git a/backends/platform/ios7/ios7_options.mm b/backends/platform/ios7/ios7_options.mm
index 42c48a86381..d52bb0d4c74 100644
--- a/backends/platform/ios7/ios7_options.mm
+++ b/backends/platform/ios7/ios7_options.mm
@@ -92,7 +92,7 @@ private:
};
IOS7OptionsWidget::IOS7OptionsWidget(GuiObject *boss, const Common::String &name, const Common::String &domain) :
- OptionsContainerWidget(boss, name, "IOS7OptionsDialog", true, domain), _enabled(true) {
+ OptionsContainerWidget(boss, name, "IOS7OptionsDialog", false, domain), _enabled(true) {
_gamepadControllerCheckbox = new GUI::CheckboxWidget(widgetsBoss(), "IOS7OptionsDialog.GamepadController", _("Show Gamepad Controller (iOS 15 and later)"));
_gamepadControllerOpacityDesc = new GUI::StaticTextWidget(widgetsBoss(), "IOS7OptionsDialog.GamepadControllerOpacity", _("Gamepad opacity"));
@@ -177,7 +177,6 @@ void IOS7OptionsWidget::defineLayout(GUI::ThemeEval &layouts, const Common::Stri
layouts.addDialog(layoutName, overlayedLayout)
.addLayout(GUI::ThemeLayout::kLayoutVertical)
- .addPadding(16, 16, 16, 16)
#if TARGET_OS_IOS
.addWidget("OnscreenControl", "Checkbox")
#endif
More information about the Scummvm-git-logs
mailing list