// includes\r
\r
#include "util.h"\r
+#include "ini.h"\r
\r
// defines\r
\r
-#define VarNb 16\r
-#define XBOARD (1<<0)\r
-#define UCI (1<<1)\r
-#define PG (1<<2)\r
+#define VarNb 16\r
+#define XBOARD (1<<0)\r
+#define UCI (1<<1)\r
+#define PG (1<<2)\r
+#define XBSEL (1<<3)\r
+#define OptionNb 256\r
+\r
+#define IS_BUTTON(str) (my_string_case_equal(str,"button") || \\r
+ my_string_case_equal(str,"save") || \\r
+ my_string_case_equal(str,"reset")) \\r
+\r
+#define IS_SPIN(str) (my_string_case_equal(str,"spin") || \\r
+ my_string_case_equal(str,"slider")) \\r
+\r
+#define IS_STRING(str) (my_string_case_equal(str,"string") || \\r
+ my_string_case_equal(str,"path") || \\r
+ my_string_case_equal(str,"file")) \\r
\r
// types\r
\r
int mode;\r
} option_t;\r
\r
+// all non NULL data in an option_list_t should be malloc'ed\r
+// use "my_string_set" to fill it. \r
+\r
+typedef struct {\r
+ option_t options[OptionNb];\r
+ int option_nb;\r
+ int iter;\r
+} option_list_t;\r
+\r
// variables\r
\r
-extern option_t Option[];\r
+extern option_list_t Option[1];\r
\r
// functions\r
\r
-extern void option_init ();\r
\r
-extern bool option_set (const char var[], const char val[]);\r
-extern bool option_set_default(const char var[], const char val[]);\r
-extern const char * option_get (const char var[]);\r
-extern const char * option_get_default(const char var[]);\r
+extern void option_init (option_list_t *option);\r
+\r
+extern void option_init_pg ();\r
+\r
+extern bool option_set (option_list_t *option,\r
+ const char var[],\r
+ const char val[]);\r
+extern bool option_set_default (option_list_t *option,\r
+ const char var[],\r
+ const char val[]);\r
+\r
+extern const char * option_get (option_list_t *option, const char var[]);\r
+extern const char * option_get_default (option_list_t *option, const char var[]);\r
+\r
+extern bool option_get_bool (option_list_t *option, const char var[]);\r
+extern double option_get_double (option_list_t *option, const char var[]);\r
+extern int option_get_int (option_list_t *option, const char var[]);\r
+extern const char * option_get_string (option_list_t *option, const char var[]);\r
+\r
+extern void option_from_ini (option_list_t *option,\r
+ ini_t *ini,\r
+ const char *section);\r
+\r
+extern bool option_is_ok (const option_list_t *option);\r
+extern option_t * option_find (option_list_t *option, const char var[]);\r
+extern void option_clear (option_list_t *option);\r
+extern void option_insert (option_list_t *option, option_t *new_option);\r
+\r
+extern void option_start_iter (option_list_t *option);\r
+extern option_t * option_next (option_list_t *option);\r
\r
-extern bool option_get_bool (const char var[]);\r
-extern double option_get_double (const char var[]);\r
-extern int option_get_int (const char var[]);\r
-extern const char * option_get_string (const char var[]);\r
+extern void option_free (option_t *option);\r
\r
#endif // !defined OPTION_H\r
\r