rayfract

annotate src/imtk/imtk.h @ 10:1496aae2e7d4

- simplified build by including dependences in the source tree - added make dep tracking - added mingw cross-build rules - added readme & licence
author John Tsiombikas <nuclear@member.fsf.org>
date Mon, 31 Jul 2023 18:58:56 +0300
parents
children
rev   line source
nuclear@10 1 #ifndef IMTK_H_
nuclear@10 2 #define IMTK_H_
nuclear@10 3
nuclear@10 4 #include <stdlib.h>
nuclear@10 5 #include <limits.h>
nuclear@10 6
nuclear@10 7 #define IMUID (__LINE__ << 10)
nuclear@10 8 #define IMUID_IDX(i) ((__LINE__ << 10) + ((i) << 1))
nuclear@10 9
nuclear@10 10
nuclear@10 11 /* key/button state enum */
nuclear@10 12 enum {
nuclear@10 13 IMTK_UP,
nuclear@10 14 IMTK_DOWN
nuclear@10 15 };
nuclear@10 16
nuclear@10 17 enum {
nuclear@10 18 IMTK_LEFT_BUTTON,
nuclear@10 19 IMTK_MIDDLE_BUTTON,
nuclear@10 20 IMTK_RIGHT_BUTTON
nuclear@10 21 };
nuclear@10 22
nuclear@10 23 enum {
nuclear@10 24 IMTK_TEXT_COLOR,
nuclear@10 25 IMTK_TOP_COLOR,
nuclear@10 26 IMTK_BOTTOM_COLOR,
nuclear@10 27 IMTK_BEVEL_LIT_COLOR,
nuclear@10 28 IMTK_BEVEL_SHAD_COLOR,
nuclear@10 29 IMTK_CURSOR_COLOR,
nuclear@10 30 IMTK_SELECTION_COLOR,
nuclear@10 31 IMTK_CHECK_COLOR
nuclear@10 32 };
nuclear@10 33
nuclear@10 34 enum {
nuclear@10 35 IMTK_HORIZONTAL,
nuclear@10 36 IMTK_VERTICAL
nuclear@10 37 };
nuclear@10 38
nuclear@10 39 #define IMTK_FOCUS_BIT 0x100
nuclear@10 40 #define IMTK_PRESS_BIT 0x200
nuclear@10 41 #define IMTK_SEL_BIT 0x400
nuclear@10 42
nuclear@10 43 #define IMTK_AUTO INT_MIN
nuclear@10 44
nuclear@10 45 #ifdef __cplusplus
nuclear@10 46 extern "C" {
nuclear@10 47 #endif
nuclear@10 48
nuclear@10 49
nuclear@10 50 void imtk_inp_key(int key, int state);
nuclear@10 51 void imtk_inp_mouse(int bn, int state);
nuclear@10 52 void imtk_inp_motion(int x, int y);
nuclear@10 53
nuclear@10 54 void imtk_set_viewport(int x, int y);
nuclear@10 55 void imtk_get_viewport(int *width, int *height);
nuclear@10 56
nuclear@10 57 void imtk_post_redisplay(void);
nuclear@10 58
nuclear@10 59 void imtk_begin(void);
nuclear@10 60 void imtk_end(void);
nuclear@10 61
nuclear@10 62 void imtk_label(const char *str, int x, int y);
nuclear@10 63 int imtk_button(int id, const char *label, int x, int y);
nuclear@10 64 int imtk_checkbox(int id, const char *label, int x, int y, int state);
nuclear@10 65 void imtk_textbox(int id, char *textbuf, size_t buf_sz, int x, int y);
nuclear@10 66 float imtk_slider(int id, float pos, float min, float max, int x, int y);
nuclear@10 67 void imtk_progress(int id, float pos, int x, int y);
nuclear@10 68 int imtk_listbox(int id, const char *list, int sel, int x, int y);
nuclear@10 69 int imtk_radiogroup(int id, const char *list, int sel, int x, int y);
nuclear@10 70
nuclear@10 71 int imtk_begin_frame(int id, const char *label, int x, int y);
nuclear@10 72 void imtk_end_frame(void);
nuclear@10 73
nuclear@10 74 /* helper functions to create and destroy item lists for listboxes */
nuclear@10 75 char *imtk_create_list(const char *first, ...);
nuclear@10 76 void imtk_free_list(char *list);
nuclear@10 77
nuclear@10 78 /* automatic layout */
nuclear@10 79 int imtk_layout_push(void);
nuclear@10 80 int imtk_layout_pop(void);
nuclear@10 81 void imtk_layout_start(int x, int y);
nuclear@10 82 void imtk_layout_dir(int dir);
nuclear@10 83 void imtk_layout_spacing(int spacing);
nuclear@10 84 void imtk_layout_advance(int width, int height);
nuclear@10 85 void imtk_layout_newline(void);
nuclear@10 86 void imtk_layout_get_pos(int *x, int *y);
nuclear@10 87 void imtk_layout_get_bounds(int *bbox);
nuclear@10 88 int imtk_layout_contains(int x, int y);
nuclear@10 89
nuclear@10 90 /* defined in draw.c */
nuclear@10 91 void imtk_set_color(unsigned int col, float r, float g, float b, float a);
nuclear@10 92 float *imtk_get_color(unsigned int col);
nuclear@10 93 void imtk_set_alpha(float a);
nuclear@10 94 float imtk_get_alpha(void);
nuclear@10 95 void imtk_set_bevel_width(float b);
nuclear@10 96 float imtk_get_bevel_width(void);
nuclear@10 97 void imtk_set_focus_factor(float fact);
nuclear@10 98 float imtk_get_focus_factor(void);
nuclear@10 99 void imtk_set_press_factor(float fact);
nuclear@10 100 float imtk_get_press_factor(void);
nuclear@10 101
nuclear@10 102 #ifdef __cplusplus
nuclear@10 103 }
nuclear@10 104 #endif
nuclear@10 105
nuclear@10 106 #endif /* IMTK_H_ */