#include <egt/themes/midnight.h>
using namespace egt;
using namespace std;
int main(int argc, const char ** argv) {
    Application app;
    auto new_global_theme = make_shared<MidnightTheme>();
    global_theme(new_global_theme);
    TopWindow win;

    VerticalBoxSizer vsizer;
    win.add(expand(vsizer));

    HorizontalBoxSizer hsizer1;
    vsizer.add(expand(hsizer1));
    Button button1(hsizer1, "Button 1");
    CheckBox checkbox1(hsizer1, "Disable Button 1");

    HorizontalBoxSizer hsizer2;
    vsizer.add(expand(hsizer2));
    Button button2(hsizer2, "Button 2");
    CheckBox checkbox2(hsizer2, "Disable Button 2");

    auto new_theme = win.theme();
    Font new_font(35, Font::Weight::bold);
    new_theme.font(new_font);
    win.theme(new_theme);

struct CustomTheme : public MidnightTheme
    {
        void apply() override
        {
            Theme::apply();
            palette().set(Palette::ColorId::button_bg,
                          Palette:: GroupId::normal,
                          Palette::pink);
            palette().set(Palette::ColorId::button_fg,
                          Palette::GroupId::normal,
                          Palette::pink);
            palette().set(Palette::ColorId::button_fg,
                          Palette::GroupId::checked,
                          Palette::pink);
            palette().set(Palette::ColorId::button_bg,
                          Palette::GroupId::disabled,
                          Palette::tan);
            font().size(30);
        }
    } custom_theme;

    custom_theme.apply();
    hsizer2.theme(custom_theme);

    win.show();
    return app.run();
}