ddnet/src/game/client/components
bors[bot] 6a53d72b35
Merge #6721
6721: Improve selection popups and dropdown menus, add dropdown menus to select screen and active controller r=def- a=Robyt3

Screenshots:
- Controls settings:
   - Before: 
![controls old](https://github.com/ddnet/ddnet/assets/23437060/8907c38a-d483-4766-84ad-49464b9760a0)
   - After: 
![controls new](https://github.com/ddnet/ddnet/assets/23437060/f021e961-ce90-4557-aef0-a1e1a4bc7ca4)
- Graphics settings (collapsed):
   - Before: 
![graphics_collapsed old](https://github.com/ddnet/ddnet/assets/23437060/d895c8d8-a72f-4da2-aa57-93d5f08be648)
   - After: 
![graphics_collapsed new](https://github.com/ddnet/ddnet/assets/23437060/e594a599-1210-4ba0-87f2-b2a824043dc4)
- Graphics settings (expanded):
   - Before: 
![graphics_expanded old](https://github.com/ddnet/ddnet/assets/23437060/cce1d8cb-4dff-4d43-a9f0-af2dbfeff27d)
   - After: 
![graphics_expanded_1 new](https://github.com/ddnet/ddnet/assets/23437060/c99c24cb-3398-4a80-9b99-3281ed62f6a7)
![graphics_expanded_2 new](https://github.com/ddnet/ddnet/assets/23437060/83fc2522-0da6-40d8-ad2b-3e3159b74308)
![graphics_expanded_3 new](https://github.com/ddnet/ddnet/assets/23437060/b00b30c4-411b-43a0-97f0-ecd47ebea516)
- The maximum dropdown menu height is limited to 40% of the screen height. The content will begin to scroll if this is exceeded:
![scrolling](https://github.com/ddnet/ddnet/assets/23437060/ac576819-f24f-4fed-82cd-a05d87f9ad71)
- If there is not enough space below the dropdown button to open the dropdown menu popup, then the popup opens to the top instead:
![alignment](https://github.com/ddnet/ddnet/assets/23437060/2f61ea30-996d-4def-8f5d-300b5008c666)

## Checklist

- [X] Tested the change ingame
- [X] Provided screenshots if it is a visual change
- [ ] Tested in combination with possibly related configuration options
- [ ] Written a unit test (especially base/) or added coverage to integration test
- [X] Considered possible null pointers and out of bounds array indexing
- [X] Changed no physics that affect existing maps
- [ ] Tested the change with [ASan+UBSan or valgrind's memcheck](https://github.com/ddnet/ddnet/#using-addresssanitizer--undefinedbehavioursanitizer-or-valgrinds-memcheck) (optional)


Co-authored-by: Robert Müller <robytemueller@gmail.com>
2023-06-10 14:01:38 +00:00
..
background.cpp Port some code to str_copy() template 2022-07-09 19:40:58 +03:00
background.h Replace all usages of C standard headers with C++ headers 2023-03-01 19:26:51 +01:00
binds.cpp Use KEY_FIRST and KEY_UNKNOWN instead of 0 2023-04-21 18:47:44 +02:00
binds.h Use const reference to pass CEvent objects 2023-04-21 18:44:48 +02:00
broadcast.cpp Simplify by calculating broadcast render offset in OnRender 2023-05-06 15:57:44 +02:00
broadcast.h Fade out broadcast in last second, use text container 2023-05-06 15:55:42 +02:00
camera.cpp Replace usages of C math functions 2023-03-01 19:26:53 +01:00
camera.h Move src/game/bezier.cpp/h to src/base/bezier.cpp/h 2022-09-24 20:53:59 +02:00
chat.cpp Minor refactoring of CAnimState and tee rendering functions 2023-06-10 13:10:26 +02:00
chat.h Make text container index type-safe 2023-05-05 15:58:17 +02:00
console.cpp Port line input and IME support from 0.7 2023-04-23 15:00:29 +02:00
console.h Port line input and IME support from 0.7 2023-04-23 15:00:29 +02:00
controls.cpp Replace usages of C math functions 2023-03-01 19:26:53 +01:00
controls.h Huge variable naming format 2022-07-08 18:01:29 +02:00
countryflags.cpp Improve usage of CCountryFlags::Render function 2023-06-07 19:04:53 +02:00
countryflags.h Improve usage of CCountryFlags::Render function 2023-06-07 19:04:53 +02:00
damageind.cpp fix nameplate related indicators opacity 2023-05-11 22:23:48 +02:00
damageind.h fix nameplate related indicators opacity 2023-05-11 22:23:48 +02:00
debughud.cpp Remove unused argument of Text/TextWidth/TextLineCount 2023-02-20 20:06:17 +01:00
debughud.h Player position, speed and angle can now be displayed in the HUD. 2022-04-14 13:42:19 +02:00
effects.cpp fix nameplate related indicators opacity 2023-05-11 22:23:48 +02:00
effects.h fix nameplate related indicators opacity 2023-05-11 22:23:48 +02:00
emoticon.cpp Minor refactoring of CAnimState and tee rendering functions 2023-06-10 13:10:26 +02:00
emoticon.h Move CRenderTools::DrawCircle to IGraphics::DrawCircle 2022-08-12 17:42:03 +02:00
flow.cpp Fix all Multiplication type alerts by CodeQL 2020-10-05 19:03:54 +02:00
flow.h Add some checksum functions to the client 2022-01-31 21:31:26 +01:00
freezebars.cpp do an int check for m_FreezeEnd instad of float, becuase it is int 2022-08-13 15:43:38 +02:00
freezebars.h add vertical ninja bar 2022-04-14 13:40:44 +02:00
ghost.cpp Merge #6035 2022-12-05 20:00:07 +00:00
ghost.h Add OnNewSnapshot to component hooks 2023-04-15 12:47:33 +02:00
hud.cpp Minor refactoring of CAnimState and tee rendering functions 2023-06-10 13:10:26 +02:00
hud.h Make text container index type-safe 2023-05-05 15:58:17 +02:00
items.cpp Fix heap-use-after-free when quitting/restarting 2023-05-14 18:12:47 +02:00
items.h Add DDNetLaser to have more info about a laser shot 2022-09-15 01:01:32 +02:00
killmessages.cpp Minor refactoring of CAnimState and tee rendering functions 2023-06-10 13:10:26 +02:00
killmessages.h Make text container index type-safe 2023-05-05 15:58:17 +02:00
mapimages.cpp Add default argument to CDataFileReader/IMap::GetItem 2023-05-14 16:39:46 +02:00
mapimages.h Merge most entity textures again 2023-01-13 15:25:38 +01:00
maplayers.cpp Add default argument to CDataFileReader/IMap::GetItem 2023-05-14 16:39:46 +02:00
maplayers.h Reworked color system 2022-07-06 11:39:51 +02:00
mapsounds.cpp Add default argument to CDataFileReader/IMap::GetItem 2023-05-14 16:39:46 +02:00
mapsounds.h Use std::vector<CSourceQueueEntry> instead of array 2022-05-27 16:31:18 +02:00
menu_background.cpp Fix division by zero when using random theme with no themes 2023-05-08 14:04:22 +02:00
menu_background.h fix formatting and include array 2023-03-18 08:07:25 +01:00
menus.cpp Fix top alignment of some popup messages 2023-06-09 14:22:21 +02:00
menus.h Use generic selection popup for drop down menus 2023-06-09 14:04:34 +02:00
menus_browser.cpp Minor refactoring of CAnimState and tee rendering functions 2023-06-10 13:10:26 +02:00
menus_demo.cpp Support dragging demo player controls to move them 2023-05-29 12:35:23 +02:00
menus_ingame.cpp Minor refactoring of CAnimState and tee rendering functions 2023-06-10 13:10:26 +02:00
menus_settings.cpp Merge #6721 2023-06-10 14:01:38 +00:00
menus_settings_assets.cpp Port line input and IME support from 0.7 2023-04-23 15:00:29 +02:00
menus_start.cpp Use FileExists/fs_is_file instead of opening file 2023-05-10 21:04:02 +02:00
motd.cpp Make text container index type-safe 2023-05-05 15:58:17 +02:00
motd.h Make text container index type-safe 2023-05-05 15:58:17 +02:00
nameplates.cpp fix nameplate related indicators opacity 2023-05-11 22:23:48 +02:00
nameplates.h Make text container index type-safe 2023-05-05 15:58:17 +02:00
particles.cpp Fix heap-use-after-free when quitting/restarting 2023-05-14 18:12:47 +02:00
particles.h Add freezing snow flakes effect and fix 50HZ timer + add 10Hz Timer to particle system 2022-06-15 22:05:40 +02:00
players.cpp Minor refactoring of CAnimState and tee rendering functions 2023-06-10 13:10:26 +02:00
players.h Minor refactoring of CAnimState and tee rendering functions 2023-06-10 13:10:26 +02:00
race_demo.cpp Port some code to str_copy() template 2022-07-09 19:40:58 +03:00
race_demo.h Add OnNewSnapshot to component hooks 2023-04-15 12:47:33 +02:00
scoreboard.cpp Minor refactoring of CAnimState and tee rendering functions 2023-06-10 13:10:26 +02:00
scoreboard.h no goals hud when empty 2022-06-16 16:28:50 +02:00
skins.cpp Implement random skin button 2023-03-25 13:11:47 +01:00
skins.h Implement random skin button 2023-03-25 13:11:47 +01:00
sounds.cpp Suppress more events while skipping in demos: 2022-08-28 15:20:50 +02:00
sounds.h Add IsPlaying to sounds client component 2022-06-26 22:43:32 +02:00
spectator.cpp Minor refactoring of CAnimState and tee rendering functions 2023-06-10 13:10:26 +02:00
spectator.h Integrate joystick with game controls and menus/editor UI 2022-06-13 20:40:37 +02:00
statboard.cpp Minor refactoring of CAnimState and tee rendering functions 2023-06-10 13:10:26 +02:00
statboard.h Organize game-client includes 2022-05-29 21:24:43 +02:00
tooltips.cpp Fix tooltips being active behind popups and outside clipping rects 2023-05-29 12:29:02 +02:00
tooltips.h Fix tooltips being active behind popups and outside clipping rects 2023-05-29 12:29:02 +02:00
voting.cpp Refactor vertical alignment in UI 2023-04-10 17:22:09 +02:00
voting.h Organize game-client and editor includes 2022-06-17 20:32:56 +02:00