17
0
mirror of https://github.com/MaSzyna-EU07/maszyna.git synced 2026-10-29 01:07:28 +01:00
Files
maszyna/launcher/launcheruilayer.cppm
maj00r 6550c88536 give importers the headers module templates need
A template defined in a module interface is instantiated in the importing
unit, where its body's types must be complete. A declaration reaching the
importer only through the interface's global module fragment is not
enough for MSVC: cParser::operator>> uses std::stringstream, and every
unit that parsed a float got an incomplete type.

526 headers across 161 units, derived from what each interface's template
bodies actually name.
2026-09-10 01:20:33 +02:00

47 lines
1013 B
C++

/*
This Source Code Form is subject to the
terms of the Mozilla Public License, v.
2.0. If a copy of the MPL was not
distributed with this file, You can
obtain one at
http://mozilla.org/MPL/2.0/.
*/
module;
#include <array>
#include <string>
export module eu07.launcher.launcheruilayer;
import eu07.application.uilayer;
import eu07.launcher.scenery_list;
import eu07.launcher.keymapper;
import eu07.launcher.vehicle_picker;
import eu07.launcher.textures_scanner;
import eu07.launcher.scenery_scanner;
export {
class launcher_ui : public ui_layer {
public:
launcher_ui();
bool on_key(int Key, int Action) override;
void on_window_resize(int w, int h) override;
private:
void render_() override;
void close_panels();
void open_panel(ui_panel *panel);
ui::vehicles_bank m_vehicles_bank;
scenery_scanner m_scenery_scanner;
ui::scenerylist_panel m_scenerylist_panel;
ui::keymapper_panel m_keymapper_panel;
ui::vehiclepicker_panel m_vehiclepicker_panel;
ui_panel *m_current_panel;
};
} // export