MCPcopy Create free account
hub / github.com/OpenRCT2/OpenRCT2 / onScrollMouseDown

Method onScrollMouseDown

src/openrct2-ui/windows/LoadSave.cpp:1039–1077  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1037 }
1038
1039 void onScrollMouseDown(int32_t scrollIndex, const ScreenCoordsXY& screenCoords) override
1040 {
1041 int32_t selectedItem;
1042
1043 selectedItem = screenCoords.y / kScrollableRowHeight;
1044 if (selectedItem >= numListItems)
1045 return;
1046
1047 if (_listItems[selectedItem].type == FileType::directory)
1048 {
1049 // The selected item is a folder
1050 numListItems = 0;
1051 selectedListItem = -1;
1052
1053 char directory[MAX_PATH];
1054 String::safeUtf8Copy(directory, _listItems[selectedItem].path.c_str(), sizeof(directory));
1055
1056 PopulateList(directory, _extensionPattern);
1057 initScrollWidgets();
1058
1059 numListItems = static_cast<uint16_t>(_listItems.size());
1060 }
1061 else // FileType::file
1062 {
1063 // Load or overwrite
1064 String::set(_currentFilename, std::size(_currentFilename), _listItems[selectedItem].name.c_str());
1065 invalidateWidget(WIDX_FILENAME_TEXTBOX);
1066
1067 if (action == LoadSaveAction::save)
1068 {
1069 WindowOverwritePromptOpen(
1070 _listItems[selectedItem].name, _listItems[selectedItem].path, action, type, _trackDesign);
1071 }
1072 else
1073 {
1074 Select(_listItems[selectedItem].path.c_str(), action, type, _trackDesign);
1075 }
1076 }
1077 }
1078
1079 void onScrollDraw(int32_t scrollIndex, RenderTarget& rt) override
1080 {

Callers

nothing calls this directly

Calls 5

safeUtf8CopyFunction · 0.85
setFunction · 0.85
SelectFunction · 0.85
sizeMethod · 0.45

Tested by

no test coverage detected