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>
13bce40c02SAlfonso S. Siciliano #include <stdio.h>
14f499134dSBaptiste Daroussin
main()15f499134dSBaptiste Daroussin int main()
16f499134dSBaptiste Daroussin {
17263660c0SAlfonso Siciliano int output, focusitem;
18f499134dSBaptiste Daroussin struct bsddialog_conf conf;
19f499134dSBaptiste Daroussin enum bsddialog_default_theme theme;
20*61ba55bcSBaptiste Daroussin struct bsddialog_menuitem items[4] = {
21*61ba55bcSBaptiste Daroussin {"", false, 0, "Flat", "default flat theme",
22*61ba55bcSBaptiste Daroussin "enum bsddialog_default_theme BSDDIALOG_THEME_FLAT" },
23*61ba55bcSBaptiste Daroussin {"", false, 0, "3D", "pseudo 3D theme",
24*61ba55bcSBaptiste Daroussin "enum bsddialog_default_theme BSDDIALOG_THEME_3D" },
25*61ba55bcSBaptiste Daroussin {"", false, 0, "BlackWhite","black and white theme",
26*61ba55bcSBaptiste Daroussin "enum bsddialog_default_theme BSDDIALOG_THEME_BLACKWHITE" },
27*61ba55bcSBaptiste Daroussin {"", false, 0, "Quit", "Exit", "Quit, Cancel or ESC to exit" }
28f499134dSBaptiste Daroussin };
29f499134dSBaptiste Daroussin
30263660c0SAlfonso Siciliano if (bsddialog_init() == BSDDIALOG_ERROR) {
31263660c0SAlfonso Siciliano printf("Error: %s\n", bsddialog_geterror());
32263660c0SAlfonso Siciliano return (1);
33263660c0SAlfonso Siciliano }
34f499134dSBaptiste Daroussin bsddialog_initconf(&conf);
35*61ba55bcSBaptiste Daroussin conf.ascii_lines = true;
36f499134dSBaptiste Daroussin bsddialog_backtitle(&conf, "Theme Example");
37*61ba55bcSBaptiste Daroussin bsddialog_initconf(&conf);
38*61ba55bcSBaptiste Daroussin conf.key.enable_esc = true;
39263660c0SAlfonso Siciliano conf.title = " Theme ";
40263660c0SAlfonso Siciliano focusitem = -1;
41263660c0SAlfonso Siciliano while (true) {
42*61ba55bcSBaptiste Daroussin output = bsddialog_menu(&conf, "Choose theme", 15, 45, 4, 4,
43263660c0SAlfonso Siciliano items, &focusitem);
44f499134dSBaptiste Daroussin
45*61ba55bcSBaptiste Daroussin if (output != BSDDIALOG_OK || items[3].on)
46f499134dSBaptiste Daroussin break;
47f499134dSBaptiste Daroussin
48f499134dSBaptiste Daroussin if (items[0].on) {
49bce40c02SAlfonso S. Siciliano theme = BSDDIALOG_THEME_FLAT;
50263660c0SAlfonso Siciliano focusitem = 0;
51*61ba55bcSBaptiste Daroussin } else if (items[1].on) {
52*61ba55bcSBaptiste Daroussin theme = BSDDIALOG_THEME_3D;
53263660c0SAlfonso Siciliano focusitem = 1;
54*61ba55bcSBaptiste Daroussin } else if (items[2].on) {
55*61ba55bcSBaptiste Daroussin theme = BSDDIALOG_THEME_BLACKWHITE;
56263660c0SAlfonso Siciliano focusitem = 2;
57263660c0SAlfonso Siciliano }
58f499134dSBaptiste Daroussin bsddialog_set_default_theme(theme);
59f499134dSBaptiste Daroussin }
60f499134dSBaptiste Daroussin
61f499134dSBaptiste Daroussin bsddialog_end();
62f499134dSBaptiste Daroussin
63*61ba55bcSBaptiste Daroussin return (0);
64f499134dSBaptiste Daroussin }