#ifndef _GTCACA_HEXVIEW_H_
#define _GTCACA_HEXVIEW_H_
#include <stdint.h>
#include <gtcaca/main.h>
#include <gtcaca/widget.h>
typedef struct _gtcaca_hexview_widget_t gtcaca_hexview_widget_t;
struct _gtcaca_hexview_widget_t {
gtcaca_widget_type_t type;
unsigned int id;
int has_focus;
int is_visible;
int x;
int y;
int width;
int height;
uint8_t color_focus_fg;
uint8_t color_focus_bg;
uint8_t color_nonfocus_fg;
uint8_t color_nonfocus_bg;
gtcaca_widget_t *parent;
gtcaca_widget_t *children;
struct _gtcaca_hexview_widget_t *prev;
struct _gtcaca_hexview_widget_t *next;
const uint8_t *data;
int len;
int top;
int hl_off;
int hl_len;
int cursor;
char *title;
};
gtcaca_hexview_widget_t *gtcaca_hexview_new(gtcaca_widget_t *parent, int x, int y, int width, int height);
void gtcaca_hexview_set_data(gtcaca_hexview_widget_t *h, const uint8_t *data, int len);
void gtcaca_hexview_set_highlight(gtcaca_hexview_widget_t *h, int off, int len);
int gtcaca_hexview_cursor(gtcaca_hexview_widget_t *h);
void gtcaca_hexview_set_title(gtcaca_hexview_widget_t *h, const char *title);
void gtcaca_hexview_draw(gtcaca_hexview_widget_t *h);
int gtcaca_hexview_key(gtcaca_hexview_widget_t *h, int key, void *userdata);
void gtcaca_hexview_free(gtcaca_hexview_widget_t *h);
#endif