1*f499134dSBaptiste Daroussin /*- 2*f499134dSBaptiste Daroussin * SPDX-License-Identifier: CC0-1.0 3*f499134dSBaptiste Daroussin * 4*f499134dSBaptiste Daroussin * Written in 2021 by Alfonso Sabato Siciliano. 5*f499134dSBaptiste Daroussin * To the extent possible under law, the author has dedicated all copyright 6*f499134dSBaptiste Daroussin * and related and neighboring rights to this software to the public domain 7*f499134dSBaptiste Daroussin * worldwide. This software is distributed without any warranty, see: 8*f499134dSBaptiste Daroussin * <http://creativecommons.org/publicdomain/zero/1.0/>. 9*f499134dSBaptiste Daroussin */ 10*f499134dSBaptiste Daroussin 11*f499134dSBaptiste Daroussin #include <stdio.h> 12*f499134dSBaptiste Daroussin #include <string.h> 13*f499134dSBaptiste Daroussin 14*f499134dSBaptiste Daroussin #include <bsddialog.h> 15*f499134dSBaptiste Daroussin #include <bsddialog_theme.h> 16*f499134dSBaptiste Daroussin 17*f499134dSBaptiste Daroussin int main() 18*f499134dSBaptiste Daroussin { 19*f499134dSBaptiste Daroussin int output; 20*f499134dSBaptiste Daroussin struct bsddialog_conf conf; 21*f499134dSBaptiste Daroussin enum bsddialog_default_theme theme; 22*f499134dSBaptiste Daroussin struct bsddialog_menuitem items[5] = { 23*f499134dSBaptiste Daroussin {"", false, 0, "Dialog", "Current dialog theme", "BSDDIALOG_THEME_DIALOG" }, 24*f499134dSBaptiste Daroussin {"", false, 0, "BSDDialog", "Future default theme", "BSDDIALOG_THEME_DEFAULT"}, 25*f499134dSBaptiste Daroussin {"", false, 0, "BlackWhite","Black and White theme", "BSDDIALOG_THEME_BLACKWHITE"}, 26*f499134dSBaptiste Daroussin {"", false, 0, "Magenta", "Testing", "BSDDIALOG_THEME_MAGENTA"}, 27*f499134dSBaptiste Daroussin {"", false, 0, "Quit", "Exit", "Quit or Cancel to exit" } 28*f499134dSBaptiste Daroussin }; 29*f499134dSBaptiste Daroussin 30*f499134dSBaptiste Daroussin bsddialog_initconf(&conf); 31*f499134dSBaptiste Daroussin conf.title = " Theme "; 32*f499134dSBaptiste Daroussin 33*f499134dSBaptiste Daroussin if (bsddialog_init() == BSDDIALOG_ERROR) 34*f499134dSBaptiste Daroussin return BSDDIALOG_ERROR; 35*f499134dSBaptiste Daroussin 36*f499134dSBaptiste Daroussin while (true) { 37*f499134dSBaptiste Daroussin bsddialog_backtitle(&conf, "Theme Example"); 38*f499134dSBaptiste Daroussin 39*f499134dSBaptiste Daroussin output = bsddialog_menu(&conf, "Choose theme", 15, 40, 5, 5, items, NULL); 40*f499134dSBaptiste Daroussin 41*f499134dSBaptiste Daroussin if (output != BSDDIALOG_YESOK || items[4].on) 42*f499134dSBaptiste Daroussin break; 43*f499134dSBaptiste Daroussin 44*f499134dSBaptiste Daroussin if (items[0].on) { 45*f499134dSBaptiste Daroussin theme = BSDDIALOG_THEME_DIALOG; 46*f499134dSBaptiste Daroussin conf.menu.default_item = items[0].name; 47*f499134dSBaptiste Daroussin } 48*f499134dSBaptiste Daroussin else if (items[1].on) { 49*f499134dSBaptiste Daroussin theme = BSDDIALOG_THEME_BSDDIALOG; 50*f499134dSBaptiste Daroussin conf.menu.default_item = items[1].name; 51*f499134dSBaptiste Daroussin } 52*f499134dSBaptiste Daroussin else if (items[2].on) { 53*f499134dSBaptiste Daroussin theme = BSDDIALOG_THEME_BLACKWHITE; 54*f499134dSBaptiste Daroussin conf.menu.default_item = items[2].name; 55*f499134dSBaptiste Daroussin } 56*f499134dSBaptiste Daroussin else if (items[3].on) { 57*f499134dSBaptiste Daroussin theme = BSDDIALOG_THEME_MAGENTA; 58*f499134dSBaptiste Daroussin conf.menu.default_item = items[3].name; 59*f499134dSBaptiste Daroussin } 60*f499134dSBaptiste Daroussin 61*f499134dSBaptiste Daroussin bsddialog_set_default_theme(theme); 62*f499134dSBaptiste Daroussin } 63*f499134dSBaptiste Daroussin 64*f499134dSBaptiste Daroussin bsddialog_end(); 65*f499134dSBaptiste Daroussin 66*f499134dSBaptiste Daroussin return output; 67*f499134dSBaptiste Daroussin } 68