15 #define XBOARD (1<<0)
\r
18 #define OptionNb 256
\r
20 #define IS_BUTTON(opt) (my_string_case_equal(opt->type,"button") || \
\r
21 my_string_case_equal(opt->type,"save") || \
\r
22 my_string_case_equal(opt->type,"reset")) \
\r
24 #define IS_SPIN(opt) (my_string_case_equal(opt->type,"spin") || \
\r
25 my_string_case_equal(opt->type,"slider")) \
\r
29 typedef struct { // TODO: put back in more logical order
\r
34 const char * default_;
\r
37 const char * var[VarNb];
\r
41 // all non NULL data in an option_list_t should be malloc'ed
\r
42 // use "my_string_set" to fill it.
\r
45 option_t options[OptionNb];
\r
52 extern option_list_t Option[1];
\r
57 extern void option_init (option_list_t *option);
\r
59 extern void option_init_pg ();
\r
61 extern bool option_set (option_list_t *option,
\r
64 extern bool option_set_default (option_list_t *option,
\r
68 extern const char * option_get (option_list_t *option, const char var[]);
\r
69 extern const char * option_get_default (option_list_t *option, const char var[]);
\r
71 extern bool option_get_bool (option_list_t *option, const char var[]);
\r
72 extern double option_get_double (option_list_t *option, const char var[]);
\r
73 extern int option_get_int (option_list_t *option, const char var[]);
\r
74 extern const char * option_get_string (option_list_t *option, const char var[]);
\r
76 extern void option_from_ini (option_list_t *option,
\r
78 const char *section);
\r
80 extern bool option_is_ok (const option_list_t *option);
\r
81 extern option_t * option_find (option_list_t *option, const char var[]);
\r
82 extern void option_clear (option_list_t *option);
\r
83 extern void option_insert (option_list_t *option, option_t *new_option);
\r
85 extern void option_start_iter (option_list_t *option);
\r
86 extern option_t * option_next (option_list_t *option);
\r
88 extern void option_free (option_t *option);
\r
90 #endif // !defined OPTION_H
\r