123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314 |
- extern "C" {
- typedef struct ui_point {
- int16_t x;
- int16_t y;
- } ui_point_t;
- typedef struct ui_region {
- int16_t x1;
- int16_t y1;
- int16_t x2;
- int16_t y2;
- } ui_region_t;
- static inline void ui_point_set(ui_point_t * point, int16_t x, int16_t y)
- {
- point->x = x;
- point->y = y;
- }
- static inline void ui_point_move(ui_point_t * point, int16_t dx, int16_t dy)
- {
- point->x += dx;
- point->y += dy;
- }
- static inline void ui_region_set(ui_region_t * region,
- int16_t x1, int16_t y1, int16_t x2, int16_t y2)
- {
- region->x1 = x1;
- region->y1 = y1;
- region->x2 = x2;
- region->y2 = y2;
- }
- static inline void ui_region_copy(ui_region_t * dest, const ui_region_t * src)
- {
- dest->x1 = src->x1;
- dest->y1 = src->y1;
- dest->x2 = src->x2;
- dest->y2 = src->y2;
- }
- static inline int16_t ui_region_get_width(const ui_region_t * region)
- {
- return (region->x2 - region->x1 + 1);
- }
- static inline int16_t ui_region_get_height(const ui_region_t * region)
- {
- return (region->y2 - region->y1 + 1);
- }
- int32_t ui_region_get_size(const ui_region_t * region);
- void ui_region_set_x(ui_region_t * region, int16_t x);
- void ui_region_set_y(ui_region_t * region, int16_t y);
- void ui_region_set_pos(ui_region_t * region, int16_t x, int16_t y);
- void ui_region_set_width(ui_region_t * region, int16_t w);
- void ui_region_set_height(ui_region_t * region, int16_t h);
- void ui_region_move(ui_region_t * region, int16_t dx, int16_t dy);
- bool ui_region_intersect(ui_region_t * result, const ui_region_t * region1, const ui_region_t * region2);
- void ui_region_merge(ui_region_t * result, const ui_region_t * region1, const ui_region_t * region2);
- int ui_region_subtract(ui_region_t * result, const ui_region_t * region, const ui_region_t * exclude);
- void ui_region_fit_in(ui_region_t *region, const ui_region_t * holder);
- bool ui_region_is_point_on(const ui_region_t * region, const ui_point_t * point);
- bool ui_region_is_on(const ui_region_t * region1, const ui_region_t * region2);
- bool ui_region_is_in(const ui_region_t * region, const ui_region_t * holder);
- bool ui_region_is_valid(const ui_region_t * region);
- bool ui_region_is_empty(const ui_region_t *region);
- }
|