/* Copyright (C) 2007-2008 The Android Open Source Project ** ** This software is licensed under the terms of the GNU General Public ** License version 2, as published by the Free Software Foundation, and ** may be copied, distributed, and modified under those terms. ** ** This program is distributed in the hope that it will be useful, ** but WITHOUT ANY WARRANTY; without even the implied warranty of ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ** GNU General Public License for more details. */ #ifndef _ANDROID_SKIN_RECT_H #define _ANDROID_SKIN_RECT_H /** Rectangles **/ typedef enum { SKIN_ROTATION_0, SKIN_ROTATION_90, SKIN_ROTATION_180, SKIN_ROTATION_270 } SkinRotation; typedef struct { int x, y; } SkinPos; extern void skin_pos_rotate( SkinPos* dst, SkinPos* src, SkinRotation rot ); typedef struct { int w, h; } SkinSize; extern void skin_size_rotate( SkinSize* dst, SkinSize* src, SkinRotation rot ); extern int skin_size_contains( SkinSize* size, int x, int y ); typedef struct { SkinPos pos; SkinSize size; } SkinRect; extern void skin_rect_init ( SkinRect* r, int x, int y, int w, int h ); extern void skin_rect_translate( SkinRect* r, int dx, int dy ); extern void skin_rect_rotate ( SkinRect* dst, SkinRect* src, SkinRotation rotation ); extern int skin_rect_contains ( SkinRect* r, int x, int y ); extern int skin_rect_intersect( SkinRect* result, SkinRect* r1, SkinRect* r2 ); extern int skin_rect_equals ( SkinRect* r1, SkinRect* r2 ); typedef enum { SKIN_OUTSIDE = 0, SKIN_INSIDE = 1, SKIN_OVERLAP = 2 } SkinOverlap; extern SkinOverlap skin_rect_contains_rect( SkinRect *r1, SkinRect *r2 ); typedef struct { int x1, y1; int x2, y2; } SkinBox; extern void skin_box_init( SkinBox* box, int x1, int y1, int x2, int y2 ); extern void skin_box_minmax_init( SkinBox* box ); extern void skin_box_minmax_update( SkinBox* box, SkinRect* rect ); extern int skin_box_minmax_to_rect( SkinBox* box, SkinRect* rect ); extern void skin_box_from_rect( SkinBox* box, SkinRect* rect ); extern void skin_box_to_rect( SkinBox* box, SkinRect* rect ); #endif /* _ANDROID_SKIN_RECT_H */