X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?p=demo_prior;a=blobdiff_plain;f=src%2Fimtk%2Fimtk.h;fp=src%2Fimtk%2Fimtk.h;h=28ff5d065203d0ee73bc548a35d99b1708a965e8;hp=0000000000000000000000000000000000000000;hb=2f14a35e7d557da12f24056267b911f24774aa18;hpb=5eefe7b94c8d6c6caa2c10e3835ab0831a3c42a1 diff --git a/src/imtk/imtk.h b/src/imtk/imtk.h new file mode 100644 index 0000000..28ff5d0 --- /dev/null +++ b/src/imtk/imtk.h @@ -0,0 +1,105 @@ +#ifndef IMTK_H_ +#define IMTK_H_ + +#include +#include + +#define IMUID (__LINE__ << 10) +#define IMUID_IDX(i) ((__LINE__ << 10) + ((i) << 1)) + + +/* key/button state enum */ +enum { + IMTK_UP, + IMTK_DOWN +}; + +enum { + IMTK_LEFT_BUTTON, + IMTK_MIDDLE_BUTTON, + IMTK_RIGHT_BUTTON +}; + +enum { + IMTK_TEXT_COLOR, + IMTK_TOP_COLOR, + IMTK_BOTTOM_COLOR, + IMTK_BEVEL_LIT_COLOR, + IMTK_BEVEL_SHAD_COLOR, + IMTK_CURSOR_COLOR, + IMTK_SELECTION_COLOR, + IMTK_CHECK_COLOR +}; + +enum { + IMTK_HORIZONTAL, + IMTK_VERTICAL +}; + +#define IMTK_FOCUS_BIT 0x100 +#define IMTK_PRESS_BIT 0x200 +#define IMTK_SEL_BIT 0x400 + +#define IMTK_AUTO INT_MIN + +#ifdef __cplusplus +extern "C" { +#endif + + +void imtk_inp_key(int key, int state); +void imtk_inp_mouse(int bn, int state); +void imtk_inp_motion(int x, int y); + +void imtk_set_viewport(int x, int y); +void imtk_get_viewport(int *width, int *height); + +void imtk_post_redisplay(void); + +void imtk_begin(void); +void imtk_end(void); + +void imtk_label(const char *str, int x, int y); +int imtk_button(int id, const char *label, int x, int y); +int imtk_checkbox(int id, const char *label, int x, int y, int state); +void imtk_textbox(int id, char *textbuf, size_t buf_sz, int x, int y); +float imtk_slider(int id, float pos, float min, float max, int x, int y); +void imtk_progress(int id, float pos, int x, int y); +int imtk_listbox(int id, const char *list, int sel, int x, int y); +int imtk_radiogroup(int id, const char *list, int sel, int x, int y); + +int imtk_begin_frame(int id, const char *label, int x, int y); +void imtk_end_frame(void); + +/* helper functions to create and destroy item lists for listboxes */ +char *imtk_create_list(const char *first, ...); +void imtk_free_list(char *list); + +/* automatic layout */ +int imtk_layout_push(void); +int imtk_layout_pop(void); +void imtk_layout_start(int x, int y); +void imtk_layout_dir(int dir); +void imtk_layout_spacing(int spacing); +void imtk_layout_advance(int width, int height); +void imtk_layout_newline(void); +void imtk_layout_get_pos(int *x, int *y); +void imtk_layout_get_bounds(int *bbox); + +/* defined in draw.c */ +void imtk_set_color(unsigned int col, float r, float g, float b, float a); +float *imtk_get_color(unsigned int col); +void imtk_set_alpha(float a); +float imtk_get_alpha(void); +void imtk_set_bevel_width(float b); +float imtk_get_bevel_width(void); +void imtk_set_focus_factor(float fact); +float imtk_get_focus_factor(void); +void imtk_set_press_factor(float fact); +float imtk_get_press_factor(void); + +#ifdef __cplusplus +} +#endif + +#endif /* IMTK_H_ */