Cyprian Klimaszewski
add6521abd
Doc: Update information for receiving a copy of GPL. ( #14869 )
2025-12-08 22:26:18 +05:00
Peter Nelson
c2d92433c6
Codechange: Use std::initializer_list for NWidgetPart data. ( #14749 )
...
Avoids using C/C++ arrays.
2025-12-08 20:20:01 +05:00
dP
8404c2a7cc
Merge remote-tracking branch 'upstream/master'
2025-09-28 02:33:49 +05:00
dP
f0f93c68ca
Merge remote-tracking branch 'upstream/master'
2025-06-14 17:01:17 +05: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
dP
df3a6e321f
Merge remote-tracking branch 'upstream/master'
2025-05-14 18:41:13 +05:00
Peter Nelson
8b14faaa40
Codechange: Add version of DrawStringMultiLine that performs clipping test. ( #14189 )
...
Normally DrawStringMultiLine does not perform any clipping, as the return value may be needed if it the text is not drawn.
In some specific cases the height is already known, so it is possible to test for clipping, which can cut down on layouting time for text which won't be visible.
2025-05-02 22:59:55 +01:00
Peter Nelson
b55af05626
Codechange: Pass encoded script strings as EncodedString.
...
This removes the ambiguity of having std::strings that may or may not be encoded.
2025-03-04 21:40:39 +00:00
Peter Nelson
8a09bb8127
Fix #11226 : Don't draw story page elements that won't be visible. ( #13736 )
...
When drawing the story page elements, all of them were drawn even if they are not visible. This can be a significant performance hit for long strings.
2025-03-04 13:38:37 +00:00
Peter Nelson
d587426912
Codechange: Drop default widget strings for story window.
2025-03-03 22:47:07 +00:00
Peter Nelson
2f75f3d147
Codechange: Use GetWidgetString for goal, league and story windows. ( #13700 )
2025-03-02 18:33:11 +00:00
Peter Nelson
e2c1b9f03e
Codechange: Use only raw strings in drop down lists. ( #13667 )
...
Strings with parameters are now pre-formatted, avoiding global parameters.
Helper functions still allow StringID.
2025-02-27 21:11:16 +00:00
Rubidium
b376e2655a
Codechange: explicitly initialise member variables of Windows
2025-02-27 20:06:06 +01:00
Peter Nelson
31bd85b743
Codechange: Use parameterised GetString() for goal, league and story windows. ( #13662 )
2025-02-25 22:55:06 +00:00
Rubidium
fd4adc55e3
Codechange: replace INVALID_X with XID::Invalid() for PoolIDs
2025-02-16 20:23:00 +01:00
Peter Nelson
20e57a02a2
Codechange: Use GetString() with argument parameters in simple cases. ( #13551 )
...
Avoids using global string parameters.
2025-02-14 00:10:56 +00:00
Rubidium
3aa60fd479
Codechange: strongly type StoryPageID and StoryPageElementID
2025-02-09 15:07:29 +01:00
Rubidium
6f8b9fc737
Codechange: remove unneeded casts
2025-02-02 19:45:17 +01:00
Rubidium
8f72a478f0
Codechange: change 'return existing window' to a template parameter
...
This change is made to make it possible to pass arbitrary other parameters
to the constructor of the window instances.
2025-02-02 15:57:18 +01:00
Rubidium
b4e3425a5f
Codefix: access pool via PoolItem, not the pool itself
2025-02-01 02:38:27 +01:00
Peter Nelson
56b1e9df1f
Codechange: Use EnumBitSet for FrameFlags.
2025-01-30 08:40:42 +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
c74e385145
Codechange: use StoryPageID instead of uint16_t
2025-01-21 01:57:05 +01:00
Rubidium
b71a5158cf
Codechange: use INVALID_VEHICLE where that's more appropriate than e.g. vehicle 0
2025-01-19 17:10:21 +01:00
Rubidium
4bf36e3fa6
Codechange: replace SetDataTip(STR_ with SetStringTip(STR_
2025-01-02 23:28:43 +01:00
Rubidium
fd5f6caed4
Codechange: use explicit TileIndex constructor for tile 0
2025-01-01 08:26:54 +01:00
dP
a86fd7c621
Update to 15.0-beta1
2024-12-25 20:34:06 +05: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
33aedc43a5
Codechange: Shrink GUIList vectors less often, reserve before use.
...
After sorting and filter lists for GUI, we often shirnk them to reduce size. However this has very little benefit:
1) The memory has already been allocated, so it doesn't prevent that memory being required.
2) It causes a new allocation and copy when the vector is shrunk, actually using more memory.
3) The list is in window state, so the lifetime is only while the window is open.
4) When a filter is clearer, the original size will be needed again, which will cause another allocation.
In fact it is beneficial to reserve to the known maximum in most cases, so do that instead.
2024-04-27 19:25:34 +01:00
Peter Nelson
5bc9854be2
Codechange: Make sort list function lists safer. ( #12574 )
...
GUIList has a pointer only to the start of each sort/filter func list, which has the potential for UB as it is unable to validate that the selected sort or filter type is in range.
Use a std::span instead and check if the selected type is in range before using it.
2024-04-25 21:00:49 +01: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
56cac21086
Codechange: Use functions to create common drop down list items.
2024-04-01 22:33:16 +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
Rubidium
d09b5aaeba
Codechange: use int32_t instead of uint16_t for scroll bar position/size/capacity
2024-03-24 08:30:38 +01:00
Rubidium
86cb184eb4
Codechange: use std::source_location over __FILE__ and __LINE__ for WindowDesc
2024-03-10 10:14:20 +01:00
dP
645bfaffbd
Merge remote-tracking branch 'upstream/master'
2024-02-04 22:50:08 +05:30
dP
33ef333b57
Update to 14.0-beta1
2024-02-04 02:18:17 +05:30
Patric Stout
fe4494ec11
Change: only open story-book in center when a GS does it ( #11916 )
2024-02-03 08:09:55 +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
Rubidium
e3f49ee7a0
Codechange: coding style fixes
2024-01-04 16:23:54 +01: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
313ee13e5f
Codechange: Add Rect version of FillDrawPixelInfo().
...
This simplifies most callers as they longer have to split out a rect.
2023-12-20 09:29:28 +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
ef385499c7
Codechange: Remove ineffective NWidgetParts. ( #11443 )
2023-11-05 14:09:47 +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
Rubidium
f16399f4c9
Codechange: replace x.size() > 0 with !x.empty()
2023-10-20 23:05:43 +02:00
Rubidium
c9276c2959
Codechange: replace x.size() == 0 with x.empty()
2023-10-20 23:05:43 +02:00
Peter Nelson
fd6f1e844a
Codechange: Avoid emplace_back(new()) into a unique_ptr. ( #11384 )
...
This could theoretically leave an unmanaged pointer in certain circumstances, and directly using
make_unique shows intent.
2023-10-20 18:40:48 +01:00