Commit Graph
167 Commits
Author SHA1 Message Date
Matthew Jimenez f9f7d0eb10 GUI: Generate ExtraGuiOptions dynamically in a scrollable container (#2783)
This allows for the removal of hardcoded extra GUI options from the
theme files, and lifts restrictions related to the maximum number
of allowed ExtraGuiOptions
2021-02-20 13:17:11 +02:00
Lothar Serra Mari 4ee02f869c GUI: Add GUI option to always return to the Launcher instead of quitting
ScummVM
2020-12-02 22:39:22 +00:00
Cameron Cawley 11724f9df1 GUI: Add a tab for backend-specific options 2020-11-22 16:35:03 +00:00
athrxx e7476495ab GUI: prevent unloading of extra font on refresh
When hitting pause in a CJK SCUMM game and then switching to fullscreen the call to ThemeEngine::refresh() would kill the required extra font.
2020-10-31 20:47:02 +01:00
Thierry Crozat 7a1b3983a2 GUI: Remove unused functions in ThemeEngine
They were leftovers from the transition to U32String.
2020-10-30 22:54:09 +00:00
athrxx 5b6ffeaa3d GUI: allow ingame CJK dialogs regardless of the launcher language
This allows a text widget to be expressly marked as Japanese, Korean or Chinese, so that the theme engine may use an appropriate font.
2020-10-30 21:36:23 +01:00
Cameron Cawley 81f989be63 GUI: Use RGB cursors on supported platforms 2020-09-17 22:21:23 +02:00
Eugene Sandulenko 65e38680dd GUI: Added XML theme setting for overriding the fonts depending on the selected language.
- Added Japanese, Korean and Traditional Chinese fonts to fonts.dat
- Bumped fonts.dat file version to 1.4
- Bumped theme version to 0.8.39
- Regenerated built-in theme
2020-09-17 02:00:33 +02:00
aryanrawlani28 a1a4e0c2d7 GUI: U32: Overload getStringWidth to accept U32 strings as params 2020-08-30 14:43:41 +02:00
aryanrawlani28 aafade4507 GUI: U32: Shift most widgets to draw with u32
- ButtonWidgets (Button, Radio, Checkbox, dropdown)
- StaticTextWidgets
- PopUpWidgets
- Tabs
- Add a temporary overloaded drawDDText function to make other widgets draw normally
2020-08-30 14:43:41 +02:00
aryanrawlani28 51d95f8978 GRAPHICS: move start + end to Graphics::TextAlign 2020-06-22 00:03:02 +02:00
BLooperZ e6e32aeb75 GUI: use start + end for horizontal align 2020-06-22 00:03:02 +02:00
aryanrawlani28 1ae2de366b GUI: RTL: Improve tab drawing for rtl 2020-06-22 00:03:02 +02:00
aryanrawlani28 312862b541 GUI: RTL: Correctly draw backgrounds of Tabs 2020-06-22 00:03:02 +02:00
aryanrawlani28 d9fc7c5cba GUI: Bump theme versions to support RTL features 2020-06-22 00:03:02 +02:00
aryanrawlani28 4699880c99 GUI: RTL: Support internal flipping of Sliders 2020-06-22 00:03:02 +02:00
aryanrawlani28 50aa421bf3 GUI: RTL: Fix display issues with some widgets
- Fix missing DD for disabled dropdownbutton
- Fix scrollbar drawing issue
- Fix eating last chars in popup
- Fix tooltip alignment
2020-06-22 00:03:02 +02:00
aryanrawlani28 f55654f1bc GUI: RTL: Popup RTL Layout and Correctly draw them
GUI: RTL: Correctly draw popups
2020-06-22 00:03:02 +02:00
aryanrawlani28 143b9fb13c GUI: RTL: Radiobuttons and Checkboxes RTL layout 2020-06-22 00:03:02 +02:00
aryanrawlani28 a587624cb3 GUI: RTL: Internal flipping for DropDownButton 2020-06-22 00:03:02 +02:00
aryanrawlani28 d6a340d3b4 GUI: Cleanup hacky function for internal flip and fix review issues 2020-06-22 00:03:02 +02:00
aryanrawlani28 b8f51ce33a GUI: RTL: Base support for radiobuttons and checkboxes 2020-06-22 00:03:02 +02:00
Thierry Crozat 4a3697a21c GUI: Bump theme version
There have been some changes to the theme (adding achievements tab
and renaming some widgets) without updating the version. This made
it possible for ScummVM to use an older theme file and crash.
2020-05-17 21:10:26 +01:00
lolbot-iichan 73f1da2773 GUI: View checked inactive checkbox as grey, not invisible 2020-04-29 10:31:36 +02:00
Bastien Bouclet bcfb7145fa GUI: Allow engines to define a fully custom tab in the edit game dialog
By implementing MetaEngine::buildEngineOptionsWidget, engines can
instantiate a container widget that will be shown in the Engine tab of
the edit game dialog. The default implementation retains the existing
behavior and shows the extra GUI options.
2020-03-28 07:38:39 +01:00
Cameron Cawley 7488e17c0a GUI: Allow shaders to be selected for individual targets 2020-03-09 18:01:14 -05:00
Bastien Bouclet 9475192e81 ENGINES: Add a keymaps tab in the in-game options dialog 2020-02-22 13:14:04 +02:00
Bastien Bouclet a56383e699 TESTBED: Use a dedicated dialog layout for the configuration dialog
The testbed configuration dialog was previously re-using the browser
dialog. That dialog is defined to overlay the game list from the launcher
screen. However, while in the testbed engine the dimensions of
the layout of the launcher dialog may have been lost, causing the
configuration dialog to fail to layout.
2020-01-30 07:34:27 +01:00
Bastien Bouclet 511d138bbc KEYMAPPER: Move the remap dialog to an option dialog tab
The aim is to make it easy to discover, and possible to use without a
keyboard.
2020-01-26 23:09:08 +02:00
Cameron Cawley 8c1d277a77 GUI: Use a ScrollContainer for the Misc tab
Fixes Trac #10961
2020-01-22 07:55:42 +02:00
Bastien Bouclet cb2bb8fac7 GUI: Add clear button for the plugins path
The other paths have one.
2020-01-04 17:48:13 +01:00
Bastien Bouclet 2de01a3553 GUI: Bump the theme format version 2020-01-04 10:59:15 +01:00
Bastien Bouclet eb28c5a092 GUI: Use a dialog theme layout for the unknown game dialog 2020-01-04 10:56:25 +01:00
Bastien Bouclet b9da793ef3 GUI: Bump the theme format version number
The DropdownButtonWidget changes broke compatibility with older themes.
2019-11-24 16:06:17 +01:00
Bastien Bouclet 2c812a6b7a GUI: Add DropdownButtonWidget and use it in the launcher for mass add
DropdownButtonWidget is a button split in two parts vertically. Clicking
the left part triggers a default action. Clicking the right part shows a
list of other actions the user can choose from.

Using this widget on the launcher lets 'Mass add' be a secondary action
of the 'Add' button, removing the necessity of pressing the shift key to
access the feature.
2019-11-24 14:06:25 +01:00
Bastien Bouclet 1d764bd787 GRAPHICS: Vector renderer clipping rect related cleanups
Selecting whether a clipping variant of a draw call needs to be used is
no longer the responsibility to the caller. The clipping rect is now
part of the state of the renderer.

Also fix some of the draw calls to better apply the clipping rect.
2019-10-07 21:47:42 +02:00
Alexander Tkachev 99c2418d1a GUI: Rewrite Cloud tab
- StorageWizardDialog is removed, along with bmps it was using;
- EditTextWidget now accepts custom font in constructor;
- ScrollContainer scrollbar now jumps to top when content height changes
so it's "overscrolled";
- IndexPageHandler now does not awaits for `code` GET-parameter, as
local webserver is no longer used to connect Storages;
- CloudManager and all corresponding Storages are updated to support
disconnecting and to notify about successful connection.
2019-07-30 14:51:41 -04:00
Bastien Bouclet a5d93d933a GUI: Use a truetype font for the debug console 2019-05-05 08:52:12 +02:00
Thierry Crozat e7ba15fa32 GUI: Add option to enable/disable using the system file browser 2018-12-16 15:58:44 +00:00
Thierry Crozat 182a87f81c GUI: Use ScrollContainer in graphics tab
This fixes bug #10634 - GUI: Options cutoff for Edit Game when
Graphics mode is x2 or less
2018-07-22 00:01:01 +01:00
Thierry Crozat 788574e751 GUI: Bump theme version
I meant to, but forgot, to do it when adding the stretch factor
to the Options dialog. Doing it now should prevent from using
older themes that do not have the position for this widget.
2018-07-13 07:58:10 +01:00
Bastien Bouclet 4d29ce21d0 GUI: Unify clip and non-clip draw calls 2018-04-19 19:18:39 +02:00
Bastien Bouclet dcfac42bb3 GUI: Remove alpha bitmap support
It was never used since its introduction 4 years ago
It was not updated to work with the clipping rect
2018-04-19 19:13:12 +02:00
Bastien Bouclet 4d0bb753e4 GUI: Remove the ThemeItem draw queues
Drawing nows happens directly when the Dialog or Widget draw methods are
called. This makes it easy to debug why a particular low level draw
method was called, by inspecting the call stack.

This replaces the notion of "buffering" by two independant ways to
control what is drawn and where:
- The active layer is used to select whether the foreground or
  background part of the dialogs are rendered by the draw calls.
- The active surface is used to select if the draw calls affect the back
  buffer or the screen.

The foreground layer of the active dialog is drawn directly to the
screen. Its background layer is drawn to the back buffer. This way
widgets can restore the back buffer in order to update without having to
redraw the dialog's background.

Dialogs lower in the dialog stack are drawn entirely to the back buffer.
2018-03-12 11:46:04 +01:00
Willem Jan Palenstijn 5510640dbc GUI: Give each tab in TabWidget its own width
The width of each tab is now computed from its title, independently of
the other tabs. This increases the number of tabs that fit on the
screen.

This rewrite also fixes a bug where if the window size increased while
_firstVisibleTab > 0, some tabs would become inaccessible when the
scroll buttons were hidden.

The layout key Globals.TabWidget.Tab.Width is now treated as minimal
tab width. This is set so that the tabs fit reasonably well in lowres
layouts.

At the same time, this reduces the lowres scroll buttons heights to fit.

This patch makes the Nintento DS hacks in TabWidget obsolete.
(Hopefully! I'm not able to test.)
2017-02-28 15:55:52 +01:00
Thierry Crozat 59675d2e4c GUI: Add Apply button in global options dialog 2016-10-30 15:43:14 +00:00
Thierry Crozat 8b1bb08a6e GUI: Increase theme version
This should have been done when making changes to it but I forgot.
2016-10-21 21:33:53 +01:00
Alexander Tkachev 091ff83ed6 GUI: Add Storage providers logos
StorageWizardDialog now shows logo of the Storage being connected (in
modern highres theme).
2016-08-24 16:07:55 +06:00
Alexander Tkachev c74ba4652d GUI: Add "Paste" button in StorageWizardDialog
It pastes clipboard contents as code into 8 fields of that dialog.
(Clipboard support works with SDL2 only.)

"Open URL" and "Paste" buttons are placed in the left column under the
picture (because there is no room for 4 buttons in the bottom row).

Commit also adds "dropbox.bmp", which is just a square 115x115 picture.
Such pictures are would be used as Storages logos in that dialog.

In lowres there is no left column, so all 4 buttons are in the same row.
None of them are visible, because they are overflowed. Container has to
be added to continue working on them.
2016-08-24 16:07:55 +06:00
Eugene Sandulenko 6524a8d103 GUI: Added transparency to PicWidgets 2016-08-24 16:07:55 +06:00