#ifndef __RELATION_CAL_H__
#define __RELATION_CAL_H__
* INCLUDES
*********************/
#include <lvgl/lvgl.h>
#define MAX_REL_LEN 256
#define FATHER 0
#define HUSBAND 1
#define SON 2
#define ELDER_BRO 3
#define ELDER_SIS 4
#define DELETE 5
#define CLEAR 6
#define MOTHER 7
#define WIFI 8
#define DAUGHTER 9
#define YOUNGER_BRO 10
#define YOUNGER_SIS 11
#define MY_NULL 12
#define CALCULATED 13
#define REL_CAL_RES_ROOT CONFIG_LVX_REL_CAL_DATA_ROOT "/res"
#define REL_CAL_FONTS_ROOT REL_CAL_RES_ROOT "/fonts"
typedef enum relation_cal_status_e
{
STATUS_INIT,
STATUS_INPUTTING,
STATUS_CALCULATED,
STATUS_XXX
} relation_cal_status_t;
typedef enum gender_e
{
GENDER_MALE,
GENDER_FEMALE,
GENDER_UNKNOWN
} gender_t;
typedef enum relation_type_e
{
REL_SELF,
REL_FATHER,
REL_MOTHER,
REL_SON,
REL_DAUGHTER,
REL_WIFE,
REL_HUSBAND,
REL_ELDER_BROTHER,
REL_YOUNGER_BROTHER,
REL_ELDER_SISTER,
REL_YOUNGER_SISTER,
REL_GRANDFATHER,
REL_GRANDMOTHER,
REL_UNCLE,
REL_AUNT,
REL_COUSIN_MALE,
REL_COUSIN_FEMALE,
REL_GREAT_GRANDFATHER,
REL_GREAT_GRANDMOTHER,
REL_MATERNAL_GRANDFATHER,
REL_MATERNAL_GRANDMOTHER,
REL_MATERNAL_GREAT_GRANDFATHER,
REL_MATERNAL_GREAT_GRANDMOTHER,
REL_FIRST_COUSIN_ONCE_REMOVED_MALE,
REL_FIRST_COUSIN_ONCE_REMOVED_FEMALE,
REL_SECOND_COUSIN_MALE,
REL_SECOND_COUSIN_FEMALE,
REL_GREAT_UNCLE,
REL_GREAT_AUNT,
REL_MATERNAL_UNCLE,
REL_MATERNAL_AUNT,
REL_NEPHEW,
REL_NIECE,
REL_SON_IN_LAW,
REL_DAUGHTER_IN_LAW,
REL_GRANDSON,
REL_GRANDDAUGHTER,
REL_GREAT_GRANDSON,
REL_GREAT_GRANDDAUGHTER,
REL_COUSIN_SON,
REL_COUSIN_DAUGHTER,
REL_GRAND_NEPHEW,
REL_GRAND_NIECE,
REL_NULL
} relation_type_t;
typedef struct btnm_relation_s
{
const char *btnm_text;
relation_type_t relation;
gender_t gender;
} btnm_relation_t;
typedef struct relation_call_s
{
const char *call;
relation_type_t relation;
} relation_call_t;
typedef struct relation_cal_s
{
struct
{
lv_obj_t *title;
lv_obj_t *note;
lv_obj_t *btnm;
lv_obj_t *screen;
} ui;
struct
{
const lv_font_t *siyuan;
} fonts;
relation_type_t rel_list[MAX_REL_LEN];
int rel_count;
relation_cal_status_t status;
} relation_cal_t;
typedef struct relation_transformation_s
{
relation_type_t from;
relation_type_t to;
relation_type_t result;
} relation_transformation_t;
void relation_cal_app_create(void);
#endif