8using CustomFormElementResult = std::variant<std::monostate, uint64, double, std::string>;
11class CustomForm :
public Form {
14 std::unique_ptr<CustomFormImpl> impl;
17 using Callback = std::function<void(
Player&, CustomFormResult
const&, FormCancelReason)>;
21 LLNDAPI
explicit CustomForm(std::string
const& title);
23 LLAPI ~CustomForm()
override;
25 LLAPI CustomForm& setTitle(std::string
const& title);
27 LLAPI CustomForm& setSubmitButton(std::string
const& text);
29 LLAPI CustomForm& appendHeader(std::string
const& text);
31 LLAPI CustomForm& appendLabel(std::string
const& text);
33 LLAPI CustomForm& appendDivider();
35 LLAPI CustomForm& appendInput(
36 std::string
const& name,
37 std::string
const& text,
38 std::string
const& placeholder = {},
39 std::string
const& defaultVal = {},
40 std::string
const& tooltip = {}
43 LLAPI CustomForm& appendToggle(
44 std::string
const& name,
45 std::string
const& text,
46 bool defaultVal =
false,
47 std::string
const& tooltip = {}
50 LLAPI CustomForm& appendDropdown(
51 std::string
const& name,
52 std::string
const& text,
53 std::vector<std::string>
const& options,
54 size_t defaultVal = 0,
55 std::string
const& tooltip = {}
58 LLAPI CustomForm& appendSlider(
59 std::string
const& name,
60 std::string
const& text,
64 double defaultVal = 0.0,
65 std::string
const& tooltip = {}
68 LLAPI CustomForm& appendStepSlider(
69 std::string
const& name,
70 std::string
const& text,
71 std::vector<std::string>
const& steps,
72 size_t defaultVal = 0,
73 std::string
const& tooltip = {}
76 LLAPI CustomForm& sendTo(
Player& player, Callback callback = {});
78 LLAPI CustomForm& sendUpdate(
Player& player, Callback callback = {});
80 LLAPI std::string getFormData()
const;