Rubidium
8ab0936491
Codechange: use parameter pack/folding instead of va_arg macros for widget states
2023-09-16 23:09:53 +02:00
Rubidium
8c742b456f
Codechange: use Textbuf directly, instead via several virtual functions in Window
2023-09-06 23:07:04 +02:00
Peter Nelson
e8015e497d
Codechange: Use begin/end of nwidget parts of begin/length.
...
This simplifies processing nwidget parts as, unlike the remaining length, the pointer to the end of the list never changes. This is the same principle as we use(d) for tracking end instead of length for C-style strings.
And this removes 160~ instances of the lengthof() macro.
2023-09-04 10:20:45 +01:00
Patric Stout
07730584d7
Codechange: make explicit when a TileIndex is cast to its basetype ( #11190 )
...
This prevents people accidentially assigning a TileIndex to a Date
or any other type they shouldn't.
2023-08-15 18:12:05 +02:00
Rubidium
eaae0bb5e7
Codechange: automatic adding of _t to (u)int types, and WChar to char32_t
...
for i in `find src -type f|grep -v 3rdparty/fmt|grep -v 3rdparty/catch2|grep -v 3rdparty/opengl|grep -v stdafx.h`; do sed 's/uint16& /uint16 \&/g;s/int8\([ >*),;[]\)/int8_t\1/g;s/int16\([ >*),;[]\)/int16_t\1/g;s/int32\([ >*),;[]\)/int32_t\1/g;s/int64\([ >*),;[]\)/int64_t\1/g;s/ uint32(/ uint32_t(/g;s/_uint8_t/_uint8/;s/Uint8_t/Uint8/;s/ft_int64_t/ft_int64/g;s/uint64$/uint64_t/;s/WChar/char32_t/g;s/char32_t char32_t/char32_t WChar/' -i $i; done
2023-07-19 19:30:14 +02:00
Rubidium
836541b41c
Codechange: use SetDParam and CopyOutDParam for tooltips
2023-06-17 10:01:19 +02:00
PeterN
f51f117b00
Change: Add window description flag to disallow interactive window closing. ( #11008 )
...
This replaces/simplifies testing for a closebox to allow closing a window with right-click, and testing for specific window classes when closing all windows by hotkey.
This allows right-click closing of dropdowns and the high-score window.
2023-06-14 17:24:14 +01:00
PeterN
ebc451b071
Fix #10987 : Double-close of dropdown stopped land-info tool working as default. ( #11000 )
...
Clicking and releasing on the query toolbar icon is meant to select the land-info tool.
This did not work as during closing a window, OnFocusLost() is called, which then closes the window again. These two calls toggled the land-info tool one and off in the same action.
Resolve by not calling Window::Close in OnFocusLost() if the window is already closing.
2023-06-12 08:42:02 +01:00
Rubidium
3323402aaa
Codechange: rename smallvec_type to container_func and use only when needed
2023-05-20 16:53:10 +02:00
Peter Nelson
c38df2d589
Codechange: Use std::map instead of custom SmallMap.
2023-05-18 12:18:30 +01:00
Peter Nelson
56085be9bd
Codechange: Move includes for common STL headers to stdafx.
2023-05-17 10:14:41 +01:00
Patric Stout
60399e17bd
Codechange: C++-ify the Layouter and related functions
...
They all now access a std::string_view, instead of a "const char *"
or std::string (in some cases).
Additionally, GetCharAtPosition and friends now return an index
instead of a "const char *", as it makes for a more clear interface.
2023-05-08 19:21:42 +02:00
Rubidium
68ff3fd062
Change: include fmt.h C++ headers in stdafx.h
...
This to prevent compilation issues between runs with and without precompiled
headers. Also remove the headers from the rest of the code base as they are
not needed there anymore, although they do relatively little harm.
2023-05-08 16:49:23 +02:00
Peter Nelson
35ba49bfb4
Change: Rename text colour NWidgetPart to SetTextStyle and add font size.
...
This allows to set both text colour and size for any widget with default
drawing.
2023-04-30 11:47:53 +01:00
Peter Nelson
e8df28d7f3
Add: parameter for ReInit() to reposition window to default.
2023-04-25 13:27:22 +01:00
Patric Stout
1ba4dcc924
Codechange: migrate all Window-related timers to the new framework
...
This means we also say goodbye to GUITimers.
2023-04-15 13:58:55 +02:00
PeterN
23eec0b7b3
Fix #8971 : Resize QueryStrings with interface scale change. ( #10281 )
...
* Fix: Use width of caret symbol '_' for text entry.
This replaces an arbitrary pixel width with the space actually required.
* Fix #8971 : Update QueryString sizes with interface scale change.
2022-12-25 00:40:55 +00:00
Bernard Teo
8a78fa7121
Feature: Contextual actions for vehicles grouped by shared orders ( #8425 )
2022-11-26 18:03:21 +01:00
Peter Nelson
ecb5393c55
Change: Standardize progress bar layout.
...
Progress bars are drawn differently depending on when it was added, with
different layouts and sizes.
This change adds a standard padding size to use, and makes all progress
bars visually similar, with scaled padding.
2022-11-12 18:28:39 +00:00
Peter Nelson
e554fd7808
Change: Hide WidgetDrawDistances from general use.
2022-11-12 18:28:39 +00:00
Peter Nelson
890b2666d3
Change: Use scaled WidgetDimensions.
2022-11-12 18:28:39 +00:00
Peter Nelson
23a8222200
Change: Split vscroll and hscroll padding.
...
Vertical and horizontal scrollbars are different sizes, this allows
different padding for each type.
2022-11-12 18:28:39 +00:00
Peter Nelson
b5693becdc
Add: Define scaled WidgetDimensions.
...
Includes RectPadding container.
2022-11-12 18:28:39 +00:00
Peter Nelson
17d1fe26c2
Codechange: Helpers to allow passing a Rect to some functions.
2022-11-12 18:28:39 +00:00
glx22
5799402f7a
Codechange: Rename window related DeleteXXX to match new behaviour
2021-05-29 21:08:25 +02:00
glx22
994bf19aef
Fix f6d5c01: Delay deletion when closing windows
2021-05-29 21:08:25 +02:00
frosch
f6d5c0136e
Codechange: make Window destruction not rely on undefined behavior.
2021-05-12 23:22:41 +02:00
frosch
f96f113951
Codechange: use IterateFromBack/Front only if the order is important.
...
Use Iterate if the order does not matter.
2021-05-12 23:22:41 +02:00
frosch
22567a1f43
Codechange: use iterators instead of 'subranges' when iterating from a specific window.
...
Using iterators makes it easier to include or exclude the start window in the iteration.
2021-05-12 23:22:41 +02:00
frosch
aba239479b
Codechange: remove excessive templating in favour of a single const_cast.
...
The const_cast will be removed again in a later commit.
2021-05-12 23:22:41 +02:00
glx22
14e92bd8e2
Codechange: Replace window related FOR_ALL with range-based for loops
2021-04-29 21:08:24 +02:00
Peter Nelson
51b4bd6c38
Codechange: Add widget text colour override property.
2021-04-22 16:42:04 +01:00
Peter Nelson
636e37d183
Codechange: Add internal widget alignment property, along with widget part.
2021-04-22 16:42:04 +01:00
Jonathan G Rennison
3ede756d23
Fix: Viewport drag tooltips not being removed when dragging over other windows
2021-04-08 19:34:45 +02:00
glx
c0d7949d7c
Fix: Don't use a timer for hundredth tick determination
2021-01-10 14:07:17 +01:00
Niels Martin Hansen
2d9fa81bd0
Feature: Plant clumps of trees in editor by dragging on the landscape
2020-12-27 01:03:27 +01:00
TechGeekNZ
a10013dd00
Codechange: Spell 'Viewport' consistently
...
Some places in the codebase misspell 'Viewport' as 'ViewPort' or 'view_port'.
This patch makes everything consistent.
2020-07-27 17:31:29 +01:00
S. D. Cloudt
13cc8a0cee
Cleanup: Removed SVN headers
2019-11-10 17:59:20 +00:00
Jonathan G Rennison
81f159434d
Codechange: Add EditBoxGainedFocus method to VideoDriver base class
2019-11-10 17:58:42 +00:00
glx
410b81537c
Fix 801cbea9c: operator< is not always the best idea
...
Also removes unused and anyway broken SmallMap::SortByKey() function.
2019-04-13 21:05:25 +02:00
glx
801cbea9cc
Codechange: use std::sort() for all std::vector types
2019-04-13 12:49:18 +01:00
Henry Wilson
7c8e7c6b6e
Codechange: Use null pointer literal instead of the NULL macro
2019-04-10 23:22:20 +02:00
Henry Wilson
c01a2e2a81
Codechange: Removed SmallVector completely
2019-03-26 20:15:57 +00:00
peter1138
f5f33da126
Codechange: Implement OnTooltip event for custom window tooltips.
...
This avoids windows from needing to know or care about tooltip delay settings.
2019-03-20 23:00:32 +00:00
peter1138
4da83d2f66
Fix #7386 : Measurement tooltip for tunnels, aqueducts & docks did not display or flickered.
...
Measurement tooltip was auto-closed as the hover/right-click test for tooltips was not
satisfied in this case. This is fixed by keeping the tooltip visible and instead explicitly
closing the tooltip when the PlaceObject is cancelled/completed.
2019-03-20 23:00:32 +00:00
Peter Nelson
de9f54ccc1
Codechange: Change scrolling_scrollbar to mouse_capture_widget, and dispatch OnClick() event if widget is not a scrollbar.
...
This allows any widget to support mouse capture.
2019-02-21 08:11:35 +00:00
Peter Nelson
2a8fa5fef9
Change: Split up Window::OnTick into OnGameTick and OnRealtimeTick. Adjust timers to work with milliseconds instead of ticks.
2019-01-11 11:56:21 +00:00
frosch
1cf09f804b
(svn r27147) -Fix: Scale (non-custom) default window sizes according to GUI zoom.
2015-02-13 21:25:48 +00:00
frosch
e113f5e4a1
(svn r27146) -Fix: Make statusbar and chat-entry window use the same width as the toolbar. Otherwise they lack a size definition.
2015-02-13 21:13:45 +00:00
alberth
78896895cf
(svn r27085) -Fix: Always return a valid window to the world generation gui code.
2014-12-18 18:20:59 +00:00
alberth
edea2ce96d
(svn r27084) -Doc: Improve documentation of AllocateWindowDescFront.
2014-12-18 16:50:11 +00:00
peter1138
0877f892c5
(svn r26960) -Codechange: Draw sort button symbols as sprites, and pad sort buttons with non-static width.
2014-10-05 11:20:02 +00:00
frosch
12ddbb7cb1
(svn r25864) -Fix: Use the actual sprite dimensions for sizing the dropdown arrow of dropdown widgets.
2013-10-13 19:18:30 +00:00
michi_cc
d15c1c5d4a
(svn r25692) -Add: Replacement of a part of the edit box text with a new string.
2013-08-05 20:37:57 +00:00
michi_cc
30867c487f
(svn r25691) -Add: [OSX] Support for mouse selection in the IME composition string.
2013-08-05 20:37:53 +00:00
michi_cc
e2ec0ddb03
(svn r25690) -Change: [OSX] Position the candidate window at the caret position.
2013-08-05 20:37:48 +00:00
michi_cc
f5e4131492
(svn r25689) -Add: [OSX] Display the IME composition string ourself.
2013-08-05 20:37:44 +00:00
michi_cc
0883cf76e3
(svn r25684) -Change: [Win32] Draw the composition string ourselves if possible.
2013-08-05 20:37:25 +00:00
michi_cc
da09fd3077
(svn r25681) -Change: [Win32] Position the IME composition window at the caret position.
2013-08-05 20:37:14 +00:00
michi_cc
7422120014
(svn r25679) -Codechange: [Win32] Get the result string of an IME input directly without a trip through the window messaging system.
2013-08-05 20:37:06 +00:00
michi_cc
13873d2534
(svn r25678) -Codechange: Notify the video driver when an edit box lost (global) focus so it can abort any current input composition.
2013-08-05 20:37:02 +00:00
michi_cc
270d8aa639
(svn r25670) -Codechange: Pass UCS-4 characters to the edit box key handler.
2013-08-05 20:36:32 +00:00
michi_cc
b911f4a452
(svn r25668) -Codechange: Pass proper Unicode UCS-4 characters instead of just UCS-2 to the window key press handlers.
2013-08-05 20:36:24 +00:00
frosch
fef30983e6
(svn r25414) -Codechange: Move handling of global hotkeys to HotkeyList.
2013-06-15 15:31:22 +00:00
frosch
6291383823
(svn r25411) -Add: Window::OnHotkey
2013-06-15 15:30:16 +00:00
frosch
18ae9c78bc
(svn r25402) -Fix-ish: Prevent copying of BasePool and WindowDesc, since they register in static vectors.
2013-06-15 15:06:22 +00:00
frosch
05c472f08a
(svn r25295) -Feature: Allow saving window sizes as default sizes.
2013-05-26 19:30:31 +00:00
frosch
4e4e635916
(svn r25294) -Feature: Add another button to window title bars to resize the window to its default size.
2013-05-26 19:30:07 +00:00
frosch
ed851034f5
(svn r25292) -Feature: Save stickyness of windows when Ctrl+Clicking the sticky button.
2013-05-26 19:27:44 +00:00
frosch
23ba42b66c
(svn r25291) -Add: WindowDesc ability to load and store information in a config file.
2013-05-26 19:27:22 +00:00
frosch
8157a8afd8
(svn r25290) -Add: Assign string names to notable windows.
2013-05-26 19:25:01 +00:00
frosch
b6d76c4d4c
(svn r25288) -Codechange: No need to copy the WindowDesc flags if the WindowDesc is directly accessible.
2013-05-26 19:24:11 +00:00
frosch
56e4a8c4d6
(svn r25287) -Codechange: Keep a reference to the WindowDesc in the Window after construction.
2013-05-26 19:23:42 +00:00
planetmaker
c24374f99c
(svn r24900) -Fix [FS#5389]: Comments with typos (most fixes supplied by Eagle_rainbow)
2013-01-08 22:46:42 +00:00
glx
5d74b679e6
(svn r24780) -Fix [FS#5378]: passing an int to a function expecting a byte can have side effects when MSVC optimises it
2012-12-03 21:03:13 +00:00
frosch
f5d8ba5d7f
(svn r24742) -Codechange: Remove QueryStringBaseWindow and store QueryStrings per widget instead.
2012-11-14 22:50:35 +00:00
frosch
fc2b12acca
(svn r24735) -Codechange: Move HandleEditBoxKey to Window class.
2012-11-13 21:47:13 +00:00
frosch
2c22fe98dd
(svn r24734) -Codechange: Move QueryStringBaseWindow::OnOSKInput to Window::OnEditboxChanged.
2012-11-13 21:47:07 +00:00
frosch
03736af2ae
(svn r24700) -Cleanup: Remove WDF_UNCLICK_BUTTONS and make it the default.
2012-11-11 16:10:43 +00:00
frosch
cfccaff645
(svn r24696) -Doc: Improve documentation for button widget types.
2012-11-11 16:01:34 +00:00
frosch
6207a6017f
(svn r24307) -Codechange: Move all interaction of the dropdown window with widgets of the parent window to a method of the parent window.
2012-06-01 10:42:46 +00:00
truebrain
1c9bec1999
(svn r23640) -Fix: stop using FORCEINLINE (1/3rd of the instances were, the others were still regular inline), but make sure inline is always a 'forced' inline (I am looking at you MSVC)
2011-12-20 17:57:56 +00:00
truebrain
403cd3acdb
(svn r23631) -Add: ScriptWindow, to manipulate windows on the client (GameScript only)
2011-12-19 21:05:14 +00:00
truebrain
df0afdf0dc
(svn r23525) -Codechange: make Window::flags4 WindowFlags instead of uint16, with only values known in WindowFlags (and move out 2 timers to their own variable)
...
-Codechange: rename Window::flags4 to Window::flags
-Codechange: move some non-inline functions from .hpp to .cpp
2011-12-15 19:54:23 +00:00
rubidium
b5a2183214
(svn r23484) -Fix [FS#4770]: in case you already have orders, ignore the vehicles when adding an extra order
2011-12-10 19:20:30 +00:00
frosch
ca4f0509fc
(svn r23252) -Codechange: Add WD_BEVEL_xxx constants.
2011-11-18 20:38:30 +00:00
peter1138
50d1541270
(svn r23017) -Codechange: Add support for resized scrollbars.
2011-10-11 08:07:47 +00:00
frosch
51ddbbb13d
(svn r22242) -Codechange: Let OnInvalidateData() decide itself what to do immediately in command scope, and what to do asynchronously in GUI-scope.
2011-03-13 21:32:13 +00:00
frosch
ec9540a12a
(svn r22241) -Codechange: Add additional to-be-used parameter to OnInvalidateData().
2011-03-13 21:31:29 +00:00
frosch
19b7249ade
(svn r22135) -Fix [FS#4523]: When commands need to invalidate windows, process these events asynchronously before the next redraw. Calling window code directly from command scope uses wrong _current_company and might issue nested DoCommands() which interfer with the running command.
2011-02-23 20:54:55 +00:00
terkhen
679cd3c21b
(svn r21803) -Cleanup: Remove unnecessary semicolons.
2011-01-15 15:36:58 +00:00
alberth
22a13850cb
(svn r21665) -Codechange: Make GetCallbackWnd a method of _thd.
2010-12-30 13:16:31 +00:00
rubidium
a029b2b83a
(svn r21477) -Fix [FS#4300]: tooltips were removed when their related window got closed
2010-12-12 14:14:26 +00:00
alberth
f5c6fd1a25
(svn r21331) -Codechange: Make drawing the widgets default behaviour in OnPaint().
2010-11-26 15:22:18 +00:00
smatz
fd54943c7a
(svn r20753) -Feature [FS#3999]: make it possible to select vehicle to clone and vehicle to clone orders from directly from vehicle lists and depot window
2010-09-06 14:14:09 +00:00
alberth
9f5a96ead2
(svn r20689) -Codechange: Make some global functions used in 1 .cpp file static in that file.
2010-08-29 15:58:43 +00:00
rubidium
30f2afac9b
(svn r20632) -Cleanup: remove "a few" unneeded includes, and add them to some headers
2010-08-26 22:01:16 +00:00
frosch
b37be47f16
(svn r20460) -Codechange: Remove WF_SCROLL window flags and store the state directly in the scrollbar widget instead.
2010-08-12 09:14:34 +00:00
frosch
6e9c9c28d9
(svn r20459) -Codechange: Remove the Scrollbar members of Window and make NWidgetScrollbar inherit from Scrollbar instead.
2010-08-12 09:13:04 +00:00
frosch
55bd5de43d
(svn r20458) -Codechange: Move Scrollbar from window.cpp to widget.cpp
2010-08-12 09:11:12 +00:00