| 12 | String const SongPathPrefix = "/songs/"; |
| 13 | |
| 14 | SongbookInterface::SongbookInterface(PlayerPtr player) { |
| 15 | m_player = std::move(player); |
| 16 | |
| 17 | auto assets = Root::singleton().assets(); |
| 18 | |
| 19 | GuiReader reader; |
| 20 | |
| 21 | reader.registerCallback("close", [=](Widget*) { dismiss(); }); |
| 22 | reader.registerCallback("btnPlay", |
| 23 | [=](Widget*) { |
| 24 | if (play()) |
| 25 | dismiss(); |
| 26 | }); |
| 27 | reader.registerCallback("group", [=](Widget*) {}); |
| 28 | reader.registerCallback("search", [=](Widget*) {}); |
| 29 | |
| 30 | reader.construct(assets->json("/interface/windowconfig/songbook.config:paneLayout"), this); |
| 31 | |
| 32 | Root::singleton().registerReloadListener( |
| 33 | m_reloadListener = make_shared<CallbackListener>([this]() { |
| 34 | refresh(true); |
| 35 | }) |
| 36 | ); |
| 37 | |
| 38 | refresh(true); |
| 39 | } |
| 40 | |
| 41 | void SongbookInterface::update(float dt) { |
| 42 | Pane::update(dt); |
nothing calls this directly
no test coverage detected