Rubidium and rubidium42
bcda4a72ee
Codechange: make WindowClass a scoped enum
2026-05-20 21:39:04 +02:00
Rubidium and rubidium42
c59d64c132
Codechange: separate TextColour enumeration and flags
2026-05-18 08:37:42 +02:00
Rubidium and rubidium42
8feffc9eba
Codechange: make FillRectMode a scoped enum
2026-04-27 22:12:20 +02:00
Rubidium and rubidium42
99c8a637b4
Codechange: make WindowPosition a scoped enum
2026-04-25 17:15:18 +02:00
Rubidium and rubidium42
3b5d46e0bb
Codechange: make Colours a scoped enum
2026-04-19 20:53:52 +02:00
Rubidium and rubidium42
7434052eb6
Codechange: make FontSize a scoped enum
2026-04-12 18:10:34 +02:00
Peter Nelson and Peter Nelson
5aae8e2d64
Codechange: make Subdirectory a scoped enum
2026-04-05 21:46:07 +01:00
Peter Nelson and Peter Nelson
f864aaf131
Change: test font for eligibility before adding as fallback
...
Avoids reloading fonts and scanning for missing glyphs for each searched font.
2026-04-03 19:45:46 +01:00
Peter Nelson and Peter Nelson
cdfbb113ce
Codechange: MissingGlyphSearcher now contains which fontsizes to search for
2026-04-03 19:45:46 +01:00
Peter Nelson and Peter Nelson
ff2028c7d6
Codechange: use scoped enum for ArrowWidgetType
...
Rename from ArrowWidgetValues to make more sense
2026-03-31 12:21:00 +01:00
Rubidium and rubidium42
dde097a080
Codechange: document parameters and return types
2026-02-20 16:14:02 +01:00
Peter Nelson and Peter Nelson
b03347f00c
Revert: "Change: Support side-by-side fallback FontCaches instead of hierarchical. ( #13303 )"
...
This reverts commit 1829f7926d .
2025-12-13 09:09:21 +00:00
Cyprian Klimaszewski and GitHub
99f04f27de
Doc: Update information for receiving a copy of GPL. ( #14869 )
2025-12-07 11:25:08 +00:00
Peter Nelson and GitHub
1829f7926d
Change: Support side-by-side fallback FontCaches instead of hierarchical. ( #13303 )
...
The text layouter system can now support using different fonts for different glyphs, including mixing scalable and sprite glyphs.
2025-12-06 10:47:12 +00:00
Peter Nelson and GitHub
66b6d71e32
Codechange: Use std::initializer_list for NWidgetPart data. ( #14749 )
...
Avoids using C/C++ arrays.
2025-11-01 22:33:00 +00:00
Peter Nelson and GitHub
5d5d27841b
Fix: Bootstrap ignored default OpenTTD truetype fonts. ( #14684 )
...
Bootstrapping assumed that glyphs must be missing if there is no baseset, ignoring whether there actually are glyphs missing.
2025-09-30 22:16:50 +01:00
Peter Nelson and GitHub
68af94cf3e
Fix 7344dfe651: Hang when clicking on a link in a text file. ( #14539 )
...
When text is not wrapped, a line's `wrapped_width` is 0, causing the Layouter to get stuck in an infinite loop.
2025-08-26 18:28:16 +01:00
Peter Nelson and GitHub
e4cf6ca0ba
Fix: Mis-sized widgets due to missing widget fill. ( #14370 )
...
In most places where we calculate and set widget resize step we neglect
to set widget fill step to match. Initial widget sizing uses fill step
instead of resize step, which means the initial size may not be a
multiple of the resize step as intended. In particular this will cause
WWT_MATRIX to be misrendered.
Whether or not this matters depends on the widget type being resized and
the window layout, however for consistency always set fill step to the
same as resize step when calculating.
2025-06-17 17:40:11 +01:00
Peter Nelson and 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
Peter Nelson and Peter Nelson
7344dfe651
Change: Reflow Textfile window content incrementally.
...
This avoids a stall when reflowing a long text file with some truetype fonts.
2025-05-23 07:42:10 +01:00
Peter Nelson and Peter Nelson
46b745a06a
Codechange: Use a helper method to test if text file window is wrapped.
2025-05-23 07:42:10 +01:00
Rubidium and rubidium42
f8aceb6c37
Codechange: use value initialisation over memset
2025-05-09 17:20:41 +02:00
frosch and frosch
61cec33be2
Codechange: Add 'const' to static variables, which are only initialised once.
2025-05-06 18:29:41 +02:00
Peter Nelson and 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
Peter Nelson and GitHub
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 and GitHub
3eba97f67c
Codechange: Scrollbar Count no longer needs to be clamped to uint16_t. ( #14184 )
2025-05-02 22:21:05 +01:00
Rubidium and rubidium42
29ceaf0a84
Codechange: use std::string_view over const char *
2025-04-27 18:04:04 +02:00
Rubidium and rubidium42
781187b8a6
Codechange: replace C-style strings with std::string_view related to strings functions
2025-04-27 17:57:42 +02:00
frosch and frosch
fa284af263
Codechange: Replace remaining Utf8Encode usages with StringBuilder.
2025-04-08 23:10:58 +02:00
Peter Nelson and GitHub
5b9d171e63
Codechange: Use EnumBitSet for StringValidationSettings. ( #13974 )
2025-04-08 21:19:17 +01:00
Peter Nelson and GitHub
89948b941b
Codechange: Use emplace_back instead of push_back. ( #13855 )
2025-03-20 17:39:10 +00:00
Rubidium and rubidium42
754311a779
Codechange: use std::move when appropriate
2025-03-13 13:00:24 +01:00
Peter Nelson and GitHub
8ba86c54b1
Add: Show hyperlink destination tooltips in text window. ( #13742 )
2025-03-10 18:12:42 +00:00
Rubidium and rubidium42
2926dd2c2f
Codefix: do not dereference the std::end() iterator
2025-03-09 23:33:25 +01:00
Rubidium and rubidium42
0b102db421
Codefix: initialise a few uninitialised variables
2025-03-08 18:01:25 +01:00
Peter Nelson and GitHub
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
Peter Nelson and Peter Nelson
d30e8dd1c1
Codechange: Use EnumBitSet for WindowDefaultFlags.
2025-01-30 08:40:42 +00:00
Peter Nelson and GitHub
afc0745aa2
Codechange: Specify underlying type for all enums excluding those exposed to scripts. ( #13383 )
2025-01-28 22:17:34 +00:00
Rubidium and rubidium42
7c1ddd74d5
Codefix: use SetToolTip(..) instead of SetStringTip(STR_NULL, ..)
2025-01-03 14:18:59 +01:00
Rubidium and rubidium42
e3a5f9b040
Codechange: replace SetDataTip(AWV_ with SetArrowWidgetTypeTip(AWV_
2025-01-02 23:28:43 +01:00
Rubidium and rubidium42
4bf36e3fa6
Codechange: replace SetDataTip(STR_ with SetStringTip(STR_
2025-01-02 23:28:43 +01:00
Peter Nelson and Peter Nelson
fa1849b855
Codechange: Use std::range::find_if where possible.
2024-11-24 10:36:03 +00:00
Peter Nelson and 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 and GitHub
3cd1200668
Fix #12976 : Incorrect widget rect scrolling for RTL languages. ( #12978 )
...
Industry directory, AS/GS and Textfile window did not consider RTL when applying horizontal scrolling.
2024-10-05 08:02:59 +01:00
Peter Nelson and GitHub
908ee7292b
Codechange: Replace all FILE * with FileHandle RAII class. ( #12718 )
...
This removes the need to manually ensure all files are closed.
2024-09-16 08:45:26 +01:00
Peter Nelson and GitHub
91fd082e93
Fix: Apply widget's internal padding to scrollbar capacity/position. ( #12801 )
...
For non-WWT_MATRIX widgets, scrollbars need to take account of the internal padding used for the widget.
This is not normally noticeable as framerect padding is only 2 extra pixels
2024-06-22 15:42:13 +00:00
Peter Nelson and GitHub
55314513ce
Codechange: Pass NWidgetParts as span instead of begin/end pointers. ( #12779 )
2024-06-12 23:08:35 +01:00
Peter Nelson and GitHub
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 and GitHub
3d4b98845a
Codechange: Remove initial colour from layouter cache. ( #12728 )
...
Initial colour is now always TC_INVALID, which is substituted with the desired colour when drawing the layout line.
This allows strings which differ only by initial colour to use the same layout cache entry, increasing the efficacy of the cache.
2024-05-28 19:33:44 +01:00
Rubidium and rubidium42
9fe9e4d398
Codechange: use vector instead of manual memory management for decompressing text files
2024-05-04 17:43:02 +02:00