Peter Nelson
f2f6609206
Fix #14572 : Incorrect playlist entry was removed if there are duplicates. ( #14583 )
2025-09-15 18:52:07 +01:00
Peter Nelson
4ed4a8b602
Codechange: Remove MusicSystem::displayed_playlist. ( #14582 )
...
It is not actually used for display, and is basically a copy of the standard playlist with duplicated maintenance.
2025-09-04 02:56:19 +01:00
Peter Nelson
5d15c8b8ab
Fix: Wrong row may be selected in music playlists. ( #14581 )
...
Include frame offset when clicking on music playlist to ensure the correct row is selected.
2025-09-03 18:02:26 +00:00
Peter Nelson
f3951214c1
Codechange: Shuffle MusicSongInfo members to reduce alignment padding. ( #14580 )
2025-09-03 17:22:50 +00:00
Peter Nelson
7d4282b341
Fix #14569 : Ensure music playlist window is large enough. ( #14570 )
...
Take number of tracks allowed in custom playlist into account, instead of just the number of tracks loaded.
2025-09-02 20:18:33 +01:00
Peter Nelson
73045f9b0e
Fix #13922 : Ensure music track no widget is wide enough for track no. ( #14566 )
2025-09-01 08:44:33 +00:00
Peter Nelson
009b7cbc57
Fix #14480 : Music player playlist buttons are clickable but non-operational in intro menu. ( #14482 )
...
In the intro menu the music is hardcoded to be the introduction track. Therefore, prevent these buttons being clickable.
2025-07-27 16:03:47 +01:00
Peter Nelson
4144865c73
Change: Tweak layout of music player widgets.
...
This removes some magic numbers and gets rid of spacers.
2025-06-17 08:54:08 +01:00
Peter Nelson
de660cba02
Change: Consistent toolbar sizes with dedicated NWidgetParts. ( #14344 )
...
Add SetToolbarSpacerMinimalSize() and SetToolbarMinimalSize() NWidgetParts and use to make toolbar button sizes consistent.
2025-06-08 18:13:47 +00:00
Peter Nelson
984d864c72
Codechange: Add OnClick handler for dropdown items.
...
This allows each dropdown item to indicate if something different should happen depending on where in the item was clicked.
2025-05-25 09:13:05 +01:00
Rubidium
cc51b29234
Codechange: use std::fill_n/copy_n over MemSetT/MemCpyT
2025-05-06 20:03:35 +02:00
Rubidium
7805c1c189
Codechange: use std::string_view for ini_key
2025-05-01 23:24:43 +02:00
Peter Nelson
78d3eaf3e2
Change: Slider widget can now be colourful.
2025-04-23 19:07:52 +01:00
frosch
dc956a758d
Fix: Draw the bevel around the music track name as inset. ( #13935 )
2025-03-31 18:54:02 +02:00
frosch
fe50f061a9
Fix #13923 : Padding in music GUI was asymmetric, so it looked different for LTR and RTL languages. ( #13933 )
2025-03-31 18:53:51 +02:00
Peter Nelson
6914d99778
Codechange: Split baseset type definitions into separate files.
2025-03-27 18:57:53 +00:00
Rubidium
754311a779
Codechange: use std::move when appropriate
2025-03-13 13:00:24 +01:00
Rubidium
2000cea235
Codechange: initialise instance members
2025-03-09 20:41:03 +01:00
Peter Nelson
6d1d320a7d
Codechange: Move to GetWidgetString for music window.
2025-03-03 20:54:48 +00:00
Peter Nelson
3fda5a8a58
Codechange: Use parameterised GetString() for jukebox window.
2025-03-02 07:29:25 +00:00
Peter Nelson
28eb5e05c8
Codechange: Use EnumBitSet for NWidContainerFlags.
2025-02-06 19:43:35 +00:00
Peter Nelson
d30e8dd1c1
Codechange: Use EnumBitSet for WindowDefaultFlags.
2025-01-30 08:40:42 +00:00
Peter Nelson
afc0745aa2
Codechange: Specify underlying type for all enums excluding those exposed to scripts. ( #13383 )
2025-01-28 22:17:34 +00:00
Rubidium
ef87acc1ff
Codechange: make STR_NULL the default for all widget construction functions
2025-01-03 23:25:27 +01:00
Rubidium
fb06ddafba
Codechange: add and use SetSprite over directly accessing widget_data
2025-01-03 11:13:16 +01:00
Rubidium
7c2668d10f
Codechange: replace SetDataTip(0x0, with SetTooltip(
2025-01-02 23:28:43 +01:00
Rubidium
d8d03212b8
Codechange: replace SetDataTip(SPR_ with SetSpriteTip(STR_
2025-01-02 23:28:43 +01:00
Rubidium
4bf36e3fa6
Codechange: replace SetDataTip(STR_ with SetStringTip(STR_
2025-01-02 23:28:43 +01:00
Peter Nelson
98e980c478
Codechange: WWT_TEXT, WWT_LABEL and WWT_EMPTY don't use colour. ( #13218 )
...
Set colour for these widget types to INVALID_COLOUR to avoid giving the impression that the colour has a purpose.
A runtime exception is added to catch this the existing widget unit test.
2025-01-01 15:38:19 +00:00
Peter Nelson
059a4b22f7
Codechange: Use projection-based std::range::find where possible.
...
This simplifies matching by class members and avoids wordy lambdas.
2024-11-24 10:36:03 +00:00
Peter Nelson
55314513ce
Codechange: Pass NWidgetParts as span instead of begin/end pointers. ( #12779 )
2024-06-12 23:08:35 +01:00
Peter Nelson
4cf6d1dd79
Codechange: Pass WindowDesc by reference instead of pointer. ( #12771 )
...
WindowDesc as passed to Windows is not optional so don't allow to it to be nullptr.
2024-06-11 08:58:03 +01:00
Peter Nelson
9a7c30a109
Codechange: Let ClickSliderWidget handle rounding to nearest mark.
2024-05-03 11:48:36 +01:00
Peter Nelson
9d2efd4c96
Codechange: Use callback function to set labels of slider widget marks.
...
Slider widgets can only use a predefined list of values and strings to draw labels. This makes it difficult to vary the display by context.
Instead of providing a predefined list as a std::map, use a callback function instead. This function can decide what text to display, and can call SetDParam to dynamically set up strings.
2024-05-03 11:48:36 +01:00
Rubidium
4f2412a272
Codechange: range based for loops instead of C-style for loops
2024-04-11 07:05:04 +02:00
Peter Nelson
de4e00c93f
Codechange: Pass by reference to UpdateWidgetSize. ( #12457 )
...
These parameters are always provided and not optional.
2024-04-09 08:34:45 +01:00
Peter Nelson
d683ec0183
Codechange: Move dropdown and slider out of widgets directory. ( #12403 )
...
Also shuffle headers to place widget includes near end.
This leaves the widgets directory solely for defining Widget IDs.
2024-03-31 19:37:16 +01:00
Patric Stout
a3cfd23cf9
Codechange: rename byte to uint8_t ( #12308 )
2024-03-16 23:59:32 +01:00
Rubidium
86cb184eb4
Codechange: use std::source_location over __FILE__ and __LINE__ for WindowDesc
2024-03-10 10:14:20 +01:00
Peter Nelson
7737aa6640
Codechange: Make all NWidgetPart arrays constexpr.
...
This ensures that the arrays are not created at runtime and prevents using non-constexpr values.
2024-01-16 21:57:05 +00:00
Peter Nelson
a0dfb76e34
Codechange: Replace mishmash of types for widget index with WidgetID.
...
Indices were stored as int, but often passed around as uint/uint8_t and casts.
Now they should all use WidgetID.
2023-12-30 00:23:57 +00:00
Peter Nelson
6f35f3274f
Fix ab1a4c6c: Crash if the "No Music" set is loaded because there is no current set_index. ( #11511 )
...
Add a helper function to get the current set_index which which checks it is in range.
2023-11-29 02:30:10 +00:00
Peter Nelson
519fe33175
Fix ab1a4c6c: Changing baseset/playlist while shuffle is on does not change song. ( #11510 )
...
The change-playlist function relied on toggling shuffle to restart playing which is no longer the case, so always handle it when changing playlist instead.
2023-11-28 17:44:31 +00:00
Peter Nelson
ab1a4c6c80
Change: Don't restart playback when toggling playlist shuffle.
...
Instead update the selected playlist entry for the current song.
2023-11-27 23:16:41 +00:00
Peter Nelson
6c91c4b99d
Fix: Invalidate playlist window when (un)shuffling playlist.
2023-11-27 23:16:41 +00:00
Peter Nelson
c18a1494b7
Codechange: Remove FONT_HEIGHT_... macros. ( #11481 )
...
These make it look like we're dealing with a constant, but actually each is a call to `GetCharacterHeight(...)`.
2023-11-21 19:04:24 +00:00
Peter Nelson
18fb8e153f
Codechange: Add __FILE__/__LINE__ of WindowDesc to WindowDesc.
...
This is to allow unit-tests to produce more useful output.
2023-11-02 22:25:01 +00:00
frosch
0b7ecf6102
Codechange: use the shortname as unique id to identify the base graphics in openttd.cfg.
2023-10-31 01:41:50 +01:00
frosch
b6c8f301be
Codechange: Silence warnings about intentionally unused parameters.
2023-09-19 22:49:59 +02:00
Rubidium
8ab0936491
Codechange: use parameter pack/folding instead of va_arg macros for widget states
2023-09-16 23:09:53 +02:00