#include "modal.hpp" #include "string_button.hpp" namespace dusk::ui { Modal::Modal(Props props) : WindowSmall("modal", "modal-dialog"), mProps(std::move(props)) { if (!mProps.variant.empty()) { mRoot->SetClass(mProps.variant, true); } auto* header = append(mDialog, "div"); header->SetClass("modal-header", true); auto* title = append(header, "div"); title->SetClass("modal-title", true); title->SetInnerRML(mProps.title); if (!mProps.icon.empty()) { auto* icon = append(header, "icon"); icon->SetClass(mProps.icon, true); } auto* body = append(mDialog, "div"); body->SetClass("modal-body", true); body->SetInnerRML(mProps.bodyRml); auto* actions = append(mDialog, "div"); actions->SetClass("modal-actions", true); for (auto& action : mProps.actions) { add_action(action); } mDoAud_seStartMenu(kSoundWindowOpen); } bool Modal::focus() { if (!mButtons.empty()) { return mButtons.front()->focus(); } return false; } void Modal::add_action(ModalAction action) { auto actions = mDialog->QuerySelector(".modal-actions"); auto btn = std::make_unique