timesynk/tile_editor/elements.h

55 lines
977 B
C

/****** elements.h, defines various UI elements
******/
#ifndef ELEMENTS_H
#define ELEMENTS_H
#define STATE_NORMAL 0
#define STATE_PRESSED 1
#define STATE_HELD 2
#define STATE_DRAG 3
struct Element {
int x;
int y;
int state;
int type;
struct Element *next;
void *data;
void (*callback)();
void *user;
};
struct Element *newElement(int type);
/* element type structs and such */
#define TYPE_TEXT 0
#define TYPE_BUTTON 1
#define TYPE_TEXT_INPUT 2
struct ButtonElement {
int length;
char *string;
};
struct TextElement {
int length;
char *string;
};
struct TextInputElement {
int size;
int cursor;
int length;
char *string;
};
int setElementText(struct Element *element, const char *string);
int setElementPosition(struct Element *element, int x, int y);
int setElementCallback(struct Element *element, void(*callback));
int setElementSize(struct Element *element, int size);
const char *getElementText(struct Element *element);
#endif