/*
 * re_ui.h
 *
 * A programmers editor
 *
 * Simple UI in SDL2
 *
 * HEADER FILE
 *
 * Author: Dario Rodriguez antartica@whereismybit.com
 * This program is licensed under the terms of GNU GPL v2.1+
 */

#include "SDL.h"
#include "SDL_rwops.h"
#include "SDL_image.h"
#include "SDL_ttf.h"


typedef struct reui_t {
        void *parent;
        int screenw,screenh;
        int w,h;
        Uint32 rmask, gmask, bmask, amask;
        SDL_Window *win;
        SDL_Renderer *renderer;
        SDL_Texture *scr;
        SDL_RWops *fontdata;
        TTF_Font *font;
        SDL_Texture *onepx;
        int fontheight;
        int fontwidth;
        int scrdirty;
        int rendererdirty;
} reui_t;

reui_t *reui_init(int fontheight, reui_t *parent);
void reui_free(reui_t *ui);

int reui_title(reui_t *ui, char *titlefilename);
int reui_resize(reui_t *ui, int w, int h);
int reui_setfontheight(reui_t *ui, int fontheight);
int reui_fill(reui_t *ui, int x, int y, int w, int h, const char *rgba);
int reui_fillrounded(reui_t *ui, int x, int y, int w, int h, const char *rgba);
int reui_fillblended(reui_t *ui, int x, int y, int w, int h, const char *rgba);
int reui_scr2renderer(reui_t *ui, int x, int y, int w, int h);
int reui_present(reui_t *ui);


int reui_write(reui_t *ui, int x, int y, const char *rgba, const char *str, int nchar);
#ifdef __GNUC__
int reui_printf(reui_t *ui, int x, int y, const char *rgba, char *format, ...) __attribute__ ((format (printf, 5, 6)));
#else
int reui_printf(reui_t *ui, int x, int y, const char *rgba, char *format, ...);
#endif

int reui_balloon(reui_t *ui, char direction, int x, int y, const char *rgbafg, const char *rgbabg, const char *str, int nchar);