1 /* -*- c-basic-offset:2; tab-width:2; indent-tabs-mode:nil -*- */
2 
3 #ifndef _DATA_H_
4 
5 #define _DATA_H_
6 
7 /* Check init_data() in main.c */
8 #define MAX_ENTRY 9
9 
10 /*
11  * typedefs
12  */
13 typedef enum { ENT_NONE, ENT_STRING, ENT_NUMERIC, ENT_COLOR, ENT_BOOL, ENT_RADIO } entry_type_t;
14 
15 typedef struct {
16   const char *name;
17   const char *key;
18   int modified;
19   entry_type_t type;
20   void *data;
21 } entry_t;
22 
23 typedef struct {
24   const char *name;
25   int size;
26   int selected;
27   int modified;
28   int maxwidth;
29   entry_t entry[MAX_ENTRY];
30 } section_t;
31 
32 typedef enum { DS_CANCEL, DS_SELECT, DS_EDIT } display_state_t;
33 
34 int entry_free(entry_t *entry);
35 int entry_edit(window_t *window, entry_t *entry, int x, int y);
36 int entry_apply(entry_t *entry);
37 int entry_display(window_t *window, entry_t *entry, int x, int y, int state);
38 int entry_reset(entry_t *entry);
39 window_t *entry_window_new(window_t *section);
40 
41 void section_free(section_t *section);
42 #endif
43