#ifndef MODAL_H_
#define MODAL_H_

#define MODAL_MESSAGE            1
#define MODAL_MESSAGE_CHOOSE     2
#define MODAL_FB_LOAD_ROM        3
#define MODAL_FB_LOAD            4
#define MODAL_FB_SAVE            5
#define MODAL_FB_DIR             6
#define MODAL_INPUT_CAPTURE      7
#define MODAL_TEXT_INPUT         8
#define MODAL_WAIT               9   /* message, no buttons, dismissed in code */

#define KAT_MSG_TYPE_NONE    0
#define KAT_MSG_TYPE_WARN    1
#define KAT_MSG_TYPE_ERROR   2
#define KAT_MSG_TYPE_CRASH   3

struct modal_config {
    int modal_type;
    int modal_active;
    int msg_type;
    int result;
    int id;
    void *data;
    char title[81];
    char accept_btn_label[48];
    char cancel_btn_label[48];
    char msg[257];
    char edit_buf[128];
    int  edit_len;
    void (*pre_show)(struct modal_config *);
    void (*post_show)(struct modal_config *);
};

#endif
