mirror of https://github.com/bsnes-emu/bsnes.git
41 lines
1.2 KiB
C++
41 lines
1.2 KiB
C++
#if defined(Hiro_NameDialog)
|
|
|
|
struct NameDialog {
|
|
using type = NameDialog;
|
|
|
|
NameDialog();
|
|
auto create(string name = "") -> string;
|
|
auto rename(string name) -> string;
|
|
auto setIcon(const image& icon = {}) -> type&;
|
|
auto setAlignment(Alignment = Alignment::Center) -> type&;
|
|
auto setAlignment(sWindow relativeTo, Alignment = Alignment::Center) -> type&;
|
|
auto setText(const string& text = {}) -> type&;
|
|
auto setTitle(const string& title = {}) -> type&;
|
|
|
|
private:
|
|
auto show(string mode, string name) -> string;
|
|
|
|
Window window;
|
|
VerticalLayout layout{&window};
|
|
Label textLabel{&layout, Size{~0, 0}};
|
|
HorizontalLayout nameLayout{&layout, Size{~0, 0}};
|
|
Canvas typeIcon{&nameLayout, Size{16_sx, 16_sy}};
|
|
LineEdit nameValue{&nameLayout, Size{~0, 0}};
|
|
HorizontalLayout controlLayout{&layout, Size{~0, 0}};
|
|
Widget controlSpacer{&controlLayout, Size{~0, 0}};
|
|
Button acceptButton{&controlLayout, Size{80, 0}};
|
|
Button cancelButton{&controlLayout, Size{80, 0}};
|
|
|
|
struct State {
|
|
Alignment alignment = Alignment::Center;
|
|
image icon;
|
|
sWindow relativeTo;
|
|
string text;
|
|
string title;
|
|
} state;
|
|
|
|
string response;
|
|
};
|
|
|
|
#endif
|