37 lines
870 B
C
37 lines
870 B
C
#ifndef DIALOGUE_H
|
|
#define DIALOGUE_H
|
|
|
|
#include "../common.h"
|
|
#include "group.h"
|
|
#include <ncurses.h>
|
|
#include <stdint.h>
|
|
#include <widget_core.h>
|
|
#include <utils.h>
|
|
#define MAX_IDS 64
|
|
|
|
enum d_color_scheme { dc_normal, dc_alert };
|
|
|
|
typedef struct {
|
|
widget_t w;
|
|
WINDOW *win;
|
|
group_t *g_content;
|
|
group_t *g_action;
|
|
group_el_t *active_el;
|
|
char text[DIALOGUE_TEXT];
|
|
bool is_initiated;
|
|
bool needs_update;
|
|
bool needs_destroy;
|
|
coordinates_t *p_coordinates;
|
|
enum d_color_scheme color_scheme;
|
|
d_array_ptr_t id_map;
|
|
} dialogue_t;
|
|
|
|
void init_dialogue(dialogue_t *d, const char title[], const char text[],
|
|
coordinates_t *p_coordinates);
|
|
int32_t draw_dialogue(dialogue_t *d);
|
|
void destroy_dialogue(dialogue_t *d, void *app);
|
|
void dialogue_default_callback(callback_args_t *args);
|
|
void dialogue_init_active_id(dialogue_t *dialogue);
|
|
|
|
#endif
|