21 #define IS_BUTTON(str) (my_string_case_equal(str,"button") || \
22 my_string_case_equal(str,"save") || \
23 my_string_case_equal(str,"reset")) \
25 #define IS_SPIN(str) (my_string_case_equal(str,"spin") || \
26 my_string_case_equal(str,"slider")) \
28 #define IS_STRING(str) (my_string_case_equal(str,"string") || \
29 my_string_case_equal(str,"path") || \
30 my_string_case_equal(str,"file")) \
34 typedef struct { // TODO: put back in more logical order
39 const char * default_;
42 const char * var[VarNb];
46 // all non NULL data in an option_list_t should be malloc'ed
47 // use "my_string_set" to fill it.
50 option_t options[OptionNb];
57 extern option_list_t Option[1];
62 extern void option_init (option_list_t *option);
64 extern void option_init_pg ();
66 extern bool option_set (option_list_t *option,
69 extern bool option_set_default (option_list_t *option,
73 extern const char * option_get (option_list_t *option, const char var[]);
74 extern const char * option_get_default (option_list_t *option, const char var[]);
76 extern bool option_get_bool (option_list_t *option, const char var[]);
77 extern double option_get_double (option_list_t *option, const char var[]);
78 extern int option_get_int (option_list_t *option, const char var[]);
79 extern const char * option_get_string (option_list_t *option, const char var[]);
81 extern void option_from_ini (option_list_t *option,
85 extern bool option_is_ok (const option_list_t *option);
86 extern option_t * option_find (option_list_t *option, const char var[]);
87 extern void option_clear (option_list_t *option);
88 extern void option_insert (option_list_t *option, option_t *new_option);
90 extern void option_start_iter (option_list_t *option);
91 extern option_t * option_next (option_list_t *option);
93 extern void option_free (option_t *option);
95 #endif // !defined OPTION_H