18b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Copyright (C) 2007-2008 The Android Open Source Project 28b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project** 38b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project** This software is licensed under the terms of the GNU General Public 48b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project** License version 2, as published by the Free Software Foundation, and 58b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project** may be copied, distributed, and modified under those terms. 68b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project** 78b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project** This program is distributed in the hope that it will be useful, 88b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project** but WITHOUT ANY WARRANTY; without even the implied warranty of 98b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 108b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project** GNU General Public License for more details. 118b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project*/ 128b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifndef _ANDROID_SKIN_RECT_H 138b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define _ANDROID_SKIN_RECT_H 148b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 158b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/** Rectangles 168b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project **/ 178b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 188b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projecttypedef enum { 198b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project SKIN_ROTATION_0, 208b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project SKIN_ROTATION_90, 218b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project SKIN_ROTATION_180, 228b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project SKIN_ROTATION_270 238b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} SkinRotation; 248b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 258b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projecttypedef struct { 268b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project int x, y; 278b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} SkinPos; 288b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 298b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern void skin_pos_rotate( SkinPos* dst, SkinPos* src, SkinRotation rot ); 308b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 318b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projecttypedef struct { 328b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project int w, h; 338b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} SkinSize; 348b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 358b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern void skin_size_rotate( SkinSize* dst, SkinSize* src, SkinRotation rot ); 368b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern int skin_size_contains( SkinSize* size, int x, int y ); 378b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 388b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 398b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projecttypedef struct { 408b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project SkinPos pos; 418b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project SkinSize size; 428b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} SkinRect; 438b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 448b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern void skin_rect_init ( SkinRect* r, int x, int y, int w, int h ); 458b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern void skin_rect_translate( SkinRect* r, int dx, int dy ); 468b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern void skin_rect_rotate ( SkinRect* dst, SkinRect* src, SkinRotation rotation ); 478b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern int skin_rect_contains ( SkinRect* r, int x, int y ); 488b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern int skin_rect_intersect( SkinRect* result, SkinRect* r1, SkinRect* r2 ); 498b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern int skin_rect_equals ( SkinRect* r1, SkinRect* r2 ); 508b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 518b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projecttypedef enum { 528b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project SKIN_OUTSIDE = 0, 538b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project SKIN_INSIDE = 1, 548b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project SKIN_OVERLAP = 2 558b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} SkinOverlap; 568b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 578b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern SkinOverlap skin_rect_contains_rect( SkinRect *r1, SkinRect *r2 ); 588b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 598b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projecttypedef struct { 608b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project int x1, y1; 618b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project int x2, y2; 628b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} SkinBox; 638b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 648b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern void skin_box_init( SkinBox* box, int x1, int y1, int x2, int y2 ); 658b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern void skin_box_minmax_init( SkinBox* box ); 668b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern void skin_box_minmax_update( SkinBox* box, SkinRect* rect ); 678b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern int skin_box_minmax_to_rect( SkinBox* box, SkinRect* rect ); 688b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern void skin_box_from_rect( SkinBox* box, SkinRect* rect ); 698b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern void skin_box_to_rect( SkinBox* box, SkinRect* rect ); 708b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 718b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif /* _ANDROID_SKIN_RECT_H */ 72