Peter Nelson
77d6f6c69f
Codechange: Make ContentType::State an enum class. ( #14279 )
2025-05-19 17:11:28 +01:00
Peter Nelson
d9247fa1a0
Change: Remove extra close buttons from some windows. ( #14124 )
...
All windows have an X button to close it, so remove the redundant close buttons.
2025-05-12 14:54:44 +01:00
Peter Nelson
d571491405
Codechange: Replace std::bitset<CONTENT_TYPE_END> with ContentTypes. ( #14223 )
...
#14214 added `ContentTypes` as en `EnumBitSet`, but some std::bitset existed already; they are now `ContentTypes` too.
2025-05-06 17:20:01 +01:00
Peter Nelson
2355d67e11
Codechange: Use EnumBitSet instead of Vector to record received content types. ( #14214 )
2025-05-05 08:55:34 +01:00
Peter Nelson
ac76212b80
Fix: Closing the Game Options window closes all textfile windows.
...
Record the parent window that opens a textfile window so only child windows are closed instead of all.
2025-05-04 19:36:46 +01:00
Rubidium
7805c1c189
Codechange: use std::string_view for ini_key
2025-05-01 23:24:43 +02:00
Rubidium
ef71ce0a9d
Codechange: return std::string_view for Textbuf::GetText()
2025-04-29 22:15:49 +02:00
frosch
fda93b6f35
Codechange: Add format_append as short-hand to format_to + back_inserter.
2025-04-29 20:26:23 +02:00
Peter Nelson
b87ce9c845
Change: Draw info headers as shade of window colour instead of pixel colour. ( #14123 )
...
Use the normal or lightest colour gradient to pick a suitable colour, instead of an arbitrary pixel colour.
(Except for the NewGRF window's info panel, this happens to be the same colour.)
2025-04-26 22:38:24 +01:00
Peter Nelson
0cf7048a67
Change: Don't select content when toggling its download status. ( #14059 )
...
This improves usability when toggling content sorted by status, as the list position no longer jumps to the now (de)selected item, making it easier to (de)select multiple items.
2025-04-21 13:20:52 +01:00
Peter Nelson
5008568dfc
Codechange: Rename CenterBounds to CentreBounds and move to geometry header. ( #14002 )
2025-04-14 23:55:40 +01:00
Peter Nelson
20d83677eb
Codechange: Use unique_ptr to manage ContentInfo lifetime.
...
Removes manually managed new/delete.
2025-04-11 23:08:59 +01:00
Peter Nelson
7b31f26611
Codechange: Pass ContentInfo by reference.
...
Many functions take a ContentInfo pointer, but do not check for nullptr.
Pass by reference instead to assure it is present.
2025-04-11 23:08:59 +01:00
Peter Nelson
6914d99778
Codechange: Split baseset type definitions into separate files.
2025-03-27 18:57:53 +00:00
Peter Nelson
e9609e4558
Codechange: Use GetWidgetString for network windows. ( #13699 )
2025-03-02 18:51:54 +00:00
Rubidium
c540c2bcf7
Codechange: explicitly initialise member variables of Windows
2025-02-27 19:58:31 +01:00
Peter Nelson
2b80812922
Codechange: Use parameterised GetString() in network-related windows. ( #13635 )
2025-02-22 13:16:47 +00:00
Peter Nelson
2d7d085e8e
Codechange: Use EncodedString for error messages. ( #13569 )
2025-02-16 10:04:32 +00:00
Jonathan G Rennison
d06b371254
Cleanup: Fix various spelling errors
2025-02-12 22:44:51 +01:00
Peter Nelson
984da2455b
Codechange: Use EncodedString for Query window. ( #13528 )
...
This removes the need to separately capture and store global parameters.
2025-02-11 17:30:16 +00:00
Peter Nelson
28eb5e05c8
Codechange: Use EnumBitSet for NWidContainerFlags.
2025-02-06 19:43:35 +00:00
Peter Nelson
fe31538a27
Codechange: Use EnumBitSet for Scanner::Modes. ( #13471 )
2025-02-05 20:08:12 +00: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
4b2051a1c1
Codechange: use Textbuf::GetText() to access the buffer / hide Textbuf::buf
2025-01-19 23:01:35 +01:00
Rubidium
ef87acc1ff
Codechange: make STR_NULL the default for all widget construction functions
2025-01-03 23:25:27 +01:00
Rubidium
b60101853c
Codechange: add and use SetString over directly accessing widget_data
2025-01-03 12:14:55 +01:00
Rubidium
ee3ea57a85
Codechange: replace SetDataTip(RWV_ with SetResizeWidgetTypeTip(RWV_
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
cba329d9e2
Add: Translatable list separator. ( #13149 )
...
Some languages should use a separator other than ", " to separate list items, so it is now a translatable string.
2024-12-06 12:32:36 +00:00
Peter Nelson
4ee45db51b
Change: [UI] Use scaled sprite sizes and correct matrix padding for content list. ( #12875 )
2024-07-21 14:01:29 +01: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
5442b0dd2d
Fix: Make progress bars obey language direction. ( #12704 )
...
With RTL languages, progress bars should start from the right.
2024-05-21 00:40:08 +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
f44d8fa2e4
Codechange: Remove CDECL from filter functions. ( #12578 )
...
These functions are not passed to qsort()...
2024-04-25 22:13:23 +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
Rubidium
86cb184eb4
Codechange: use std::source_location over __FILE__ and __LINE__ for WindowDesc
2024-03-10 10:14:20 +01:00
Patric Stout
7824ae5b59
Fix #12196 : disable "select upgrade" button when filtering
2024-03-01 22:17:33 +01:00
Patric Stout
b307541099
Fix #12196 : always show selected content, even when filtering
2024-03-01 22:17:33 +01:00
Peter Nelson
d4f0f0e2c5
Codechange: Use GetVisibleRangeIterators() in more places. ( #12190 )
...
This replaces more first/last index calculation, along with indexed array/vector access, with iterator access instead.
2024-02-27 20:10:06 +00:00
Patric Stout
5b3bfe4c4c
Fix fdfcb09: for content service, fallback to TCP downloads when HTTP stalls ( #12056 )
2024-02-11 20:24:28 +01:00
frosch
b1718478c8
Codechange: Replace old non-standard attributes with C++17/20 standard attributes.
2024-02-02 22:29:28 +01:00
Peter Nelson
fef0bfcfd3
Fix: TextfileWindow called virtual methods before constructor completed. ( #11889 )
...
SetStringParameters() was called during widget tree init in the constructor.
Calls within a constructor cannot call the derived classes methods. This would result in invalid data being passed to the string system, which could then crash.
2024-01-27 14:45:37 +00: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
6e8c27b8e5
Change: Hide bevel for resizeable sparse layout windows. ( #11572 )
...
When clicked, the button is still highlighted to show that it is active.
The bevel is controlled with widget_data by RWV_SHOW_BEVEL or RWV_HIDE_BEVEL values.
2023-12-10 17:25:36 +00:00