54 if(SDL_WasInit(0) == 0)
56 SLEAK_WARN(
"SDL is not initialized yet! Cannot display message box.");
60 SDL_MessageBoxColorScheme Colorscheme;
61 Colorscheme.colors[0].r = scheme.Background[0];
62 Colorscheme.colors[0].g = scheme.Background[1];
63 Colorscheme.colors[0].b = scheme.Background[2];
65 Colorscheme.colors[1].r = scheme.Text[0];
66 Colorscheme.colors[1].g = scheme.Text[1];
67 Colorscheme.colors[1].b = scheme.Text[2];
69 Colorscheme.colors[2].r = scheme.ButtonBorder[0];
70 Colorscheme.colors[2].g = scheme.ButtonBorder[1];
71 Colorscheme.colors[2].b = scheme.ButtonBorder[2];
73 Colorscheme.colors[3].r = scheme.ButtonBackground[0];
74 Colorscheme.colors[3].g = scheme.ButtonBackground[1];
75 Colorscheme.colors[3].b = scheme.ButtonBackground[2];
77 Colorscheme.colors[4].r = scheme.ButtonText[0];
78 Colorscheme.colors[4].g = scheme.ButtonText[1];
79 Colorscheme.colors[4].b = scheme.ButtonText[2];
81 const SDL_MessageBoxButtonData Buttons[] = {
87 SDL_MessageBoxData data;
88 data.flags = (SDL_MessageBoxButtonFlags)Type;
90 data.message = Message;
91 data.window =
nullptr;
92 data.buttons = Buttons;
93 data.numbuttons = SDL_arraysize(Buttons);
94 data.colorScheme = &Colorscheme;
98 if(!SDL_ShowMessageBox(&data,&button))
100 SLEAK_ERROR(
"Failed to create message box! {}",SDL_GetError());
MessageBoxReturn ShowMessageBox(const char *Title, const char *Message, MessageBoxType Type, MessageBoxColorScheme scheme=MessageBoxColorScheme())
Blocking Yes/No/Cancel dialog with a custom color scheme; returns the pressed button.
void MessageBox(const char *Title, const char *Message, MessageBoxType Type)
Fire-and-forget OS message box; no return value, no custom buttons.