#ifndef _GTCACA_MAIN_H_
#define _GTCACA_MAIN_H_
#include <caca.h>
#include <gtcaca/application.h>
#include <gtcaca/log.h>
#include <gtcaca/theme.h>
#include <gtcaca/widget.h>
#include <gtcaca/utlist.h>
struct _gmo_t {
caca_canvas_t *cv;
caca_display_t *dp;
gtcaca_theme_t theme;
gtcaca_log_t *log;
unsigned int id;
gtcaca_widget_t *widgets_list;
};
typedef struct _gmo_t gmo_t;
extern gmo_t gmo;
#define GTCACA_KEY_UNICODE 0x40000000
#define GTCACA_KEY_IS_UNICODE(k) (((k) & GTCACA_KEY_UNICODE) != 0)
#define GTCACA_KEY_CODEPOINT(k) ((uint32_t)((k) & ~GTCACA_KEY_UNICODE))
int gtcaca_init(int *argc, char ***argv);
void gtcaca_main(void);
void gtcaca_main_quit(void);
void gtcaca_redraw(void);
void gtcaca_clear_screen(void);
void gtcaca_refresh(void);
void gtcaca_widget_draw(gtcaca_widget_t *widget);
void gtcaca_present_shutdown(void);
void gtcaca_shutdown(void);
unsigned int gtcaca_get_newid(void);
int gtcaca_terminal_supports_blocks(void);
#endif