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 <bsddialog.h> 12f499134dSBaptiste Daroussin #include <bsddialog_theme.h> 13*bce40c02SAlfonso S. Siciliano #include <stdio.h> 14*bce40c02SAlfonso S. Siciliano #include <string.h> 15f499134dSBaptiste Daroussin 16f499134dSBaptiste Daroussin int main() 17f499134dSBaptiste Daroussin { 18263660c0SAlfonso Siciliano int output, focusitem; 19f499134dSBaptiste Daroussin struct bsddialog_conf conf; 20f499134dSBaptiste Daroussin enum bsddialog_default_theme theme; 21263660c0SAlfonso Siciliano struct bsddialog_menuitem items[5] = { 22*bce40c02SAlfonso S. Siciliano {"", false, 0, "Flat", "dialog-like", 23*bce40c02SAlfonso S. Siciliano "BSDDIALOG_THEME_FLAT" }, 24263660c0SAlfonso Siciliano {"", false, 0, "Dialog", "dialog clone", 25263660c0SAlfonso Siciliano "BSDDIALOG_THEME_DIALOG" }, 26263660c0SAlfonso Siciliano {"", false, 0, "BSDDialog", "new theme", 27263660c0SAlfonso Siciliano "BSDDIALOG_THEME_BSDDIALOG" }, 28263660c0SAlfonso Siciliano {"", false, 0, "BlackWhite","black and white", 29263660c0SAlfonso Siciliano "BSDDIALOG_THEME_BLACKWHITE" }, 30f499134dSBaptiste Daroussin {"", false, 0, "Quit", "Exit", "Quit or Cancel to exit" } 31f499134dSBaptiste Daroussin }; 32f499134dSBaptiste Daroussin 33263660c0SAlfonso Siciliano if (bsddialog_init() == BSDDIALOG_ERROR) { 34263660c0SAlfonso Siciliano printf("Error: %s\n", bsddialog_geterror()); 35263660c0SAlfonso Siciliano return (1); 36263660c0SAlfonso Siciliano } 37263660c0SAlfonso Siciliano 38f499134dSBaptiste Daroussin bsddialog_initconf(&conf); 39f499134dSBaptiste Daroussin 40f499134dSBaptiste Daroussin bsddialog_backtitle(&conf, "Theme Example"); 41f499134dSBaptiste Daroussin 42263660c0SAlfonso Siciliano conf.title = " Theme "; 43263660c0SAlfonso Siciliano focusitem = -1; 44263660c0SAlfonso Siciliano while (true) { 45*bce40c02SAlfonso S. Siciliano output = bsddialog_menu(&conf, "Choose theme", 15, 45, 5, 5, 46263660c0SAlfonso Siciliano items, &focusitem); 47f499134dSBaptiste Daroussin 48263660c0SAlfonso Siciliano if (output != BSDDIALOG_OK || items[4].on) 49f499134dSBaptiste Daroussin break; 50f499134dSBaptiste Daroussin 51f499134dSBaptiste Daroussin if (items[0].on) { 52*bce40c02SAlfonso S. Siciliano theme = BSDDIALOG_THEME_FLAT; 53263660c0SAlfonso Siciliano focusitem = 0; 54f499134dSBaptiste Daroussin } 55f499134dSBaptiste Daroussin else if (items[1].on) { 56263660c0SAlfonso Siciliano theme = BSDDIALOG_THEME_DIALOG; 57263660c0SAlfonso Siciliano focusitem = 1; 58f499134dSBaptiste Daroussin } 59f499134dSBaptiste Daroussin else if (items[2].on) { 60263660c0SAlfonso Siciliano theme = BSDDIALOG_THEME_BSDDIALOG; 61263660c0SAlfonso Siciliano focusitem = 2; 62263660c0SAlfonso Siciliano } 63263660c0SAlfonso Siciliano else if (items[3].on) { 64f499134dSBaptiste Daroussin theme = BSDDIALOG_THEME_BLACKWHITE; 65263660c0SAlfonso Siciliano focusitem = 3; 66f499134dSBaptiste Daroussin } 67f499134dSBaptiste Daroussin 68f499134dSBaptiste Daroussin bsddialog_set_default_theme(theme); 69f499134dSBaptiste Daroussin } 70f499134dSBaptiste Daroussin 71f499134dSBaptiste Daroussin bsddialog_end(); 72f499134dSBaptiste Daroussin 73263660c0SAlfonso Siciliano return (output); 74f499134dSBaptiste Daroussin }