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