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#include "android/skin/rect.h" 138b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#include <limits.h> 148b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 158b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define SKIN_POS_INITIALIZER { 0, 0 } 168b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 178b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectvoid 188b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectskin_pos_rotate( SkinPos* dst, SkinPos* src, SkinRotation rotation ) 198b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 208b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project int x = src->x; 218b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project int y = src->y; 228b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 238b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project switch ( rotation & 3 ) { 248b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project case SKIN_ROTATION_0: 258b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project dst->x = x; 268b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project dst->y = y; 278b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project break; 288b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 298b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project case SKIN_ROTATION_90: 308b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project dst->x = -y; 318b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project dst->y = x; 328b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project break; 338b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 348b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project case SKIN_ROTATION_180: 358b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project dst->x = -x; 368b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project dst->y = -y; 378b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project break; 388b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 398b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project default: 408b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project dst->x = y; 418b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project dst->y = -x; 428b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project } 438b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} 448b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 458b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 468b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define SKIN_SIZE_INITIALIZER { 0, 0 } 478b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 488b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectint 498b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectskin_size_contains( SkinSize* size, int x, int y ) 508b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 518b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return ( (unsigned) x < (unsigned) size->w && 528b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project (unsigned) y < (unsigned) size->h ); 538b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} 548b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 558b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectvoid 568b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectskin_size_rotate( SkinSize* dst, SkinSize* src, SkinRotation rot ) 578b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 588b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project int w = src->w; 598b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project int h = src->h; 608b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 618b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project if ((rot & 1) != 0) { 628b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project dst->w = h; 638b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project dst->h = w; 648b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project } else { 658b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project dst->w = w; 668b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project dst->h = h; 678b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project } 688b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} 698b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 708b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/** SKIN RECTANGLES 718b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project **/ 728b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define SKIN_RECT_INITIALIZER { SKIN_POS_INITIALIZER, SKIN_SIZE_INITIALIZER } 738b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 748b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectvoid 758b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectskin_rect_init( SkinRect* r, int x, int y, int w, int h ) 768b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 778b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project if (w < 0 || h < 0) 788b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project x = y = w = h = 0; 798b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 808b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project r->pos.x = x; 818b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project r->pos.y = y; 828b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project r->size.w = w; 838b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project r->size.h = h; 848b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} 858b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 868b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 878b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectvoid 888b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectskin_rect_translate( SkinRect* r, int dx, int dy ) 898b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 908b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project r->pos.x += dx; 918b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project r->pos.y += dy; 928b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} 938b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 948b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 958b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectvoid 968b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectskin_rect_rotate( SkinRect* dst, SkinRect* src, SkinRotation rot ) 978b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 988b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project int x, y, w, h; 998b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1008b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project switch (rot & 3) { 1018b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project case SKIN_ROTATION_90: 1028b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project x = src->pos.x; 1038b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project y = src->pos.y; 1048b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project w = src->size.w; 1058b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project h = src->size.h; 1068b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project dst->pos.x = -(y + h); 1078b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project dst->pos.y = x; 1088b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project dst->size.w = h; 1098b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project dst->size.h = w; 1108b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project break; 1118b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1128b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project case SKIN_ROTATION_180: 1138b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project dst->pos.x = -(src->pos.x + src->size.w); 1148b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project dst->pos.y = -(src->pos.y + src->size.h); 1158b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project dst->size = src->size; 1168b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project break; 1178b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1188b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project case SKIN_ROTATION_270: 1198b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project x = src->pos.x; 1208b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project y = src->pos.y; 1218b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project w = src->size.w; 1228b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project h = src->size.h; 1238b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project dst->pos.x = y; 1248b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project dst->pos.y = -(x + w); 1258b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project dst->size.w = h; 1268b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project dst->size.h = w; 1278b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project break; 1288b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1298b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project default: 1308b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project dst[0] = src[0]; 1318b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project } 1328b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} 1338b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1348b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1358b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectint 1368b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectskin_rect_contains( SkinRect* r, int x, int y ) 1378b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 1388b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return ( (unsigned)(x - r->pos.x) < (unsigned)r->size.w && 1398b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project (unsigned)(y - r->pos.y) < (unsigned)r->size.h ); 1408b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} 1418b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1428b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectSkinOverlap 1438b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectskin_rect_contains_rect( SkinRect *r1, SkinRect *r2 ) 1448b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 1458b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project SkinBox a, b; 1468b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1478b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project skin_box_from_rect( &a, r1 ); 1488b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project skin_box_from_rect( &b, r2 ); 1498b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1508b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project if (a.x2 <= b.x1 || b.x2 <= a.x1 || a.y2 <= b.y1 || b.y2 <= a.y1) { 1518b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return SKIN_OUTSIDE; 1528b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project } 1538b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1548b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project if (b.x1 >= a.x1 && b.x2 <= a.x2 && b.y1 >= a.y1 && b.y2 <= a.y2) { 1558b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return SKIN_INSIDE; 1568b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project } 1578b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1588b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return SKIN_OVERLAP; 1598b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} 1608b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1618b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1628b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectint 1638b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectskin_rect_intersect( SkinRect* result, SkinRect* r1, SkinRect* r2 ) 1648b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 1658b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project SkinBox a, b, r; 1668b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1678b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project skin_box_from_rect( &a, r1 ); 1688b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project skin_box_from_rect( &b, r2 ); 1698b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1708b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project if (a.x2 <= b.x1 || b.x2 <= a.x1 || a.y2 <= b.y1 || b.y2 <= a.y1) { 1718b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project result->pos.x = result->pos.y = result->size.w = result->size.h = 0; 1728b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return 0; 1738b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project } 1748b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1758b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project r.x1 = (a.x1 > b.x1) ? a.x1 : b.x1; 1768b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project r.x2 = (a.x2 < b.x2) ? a.x2 : b.x2; 1778b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project r.y1 = (a.y1 > b.y1) ? a.y1 : b.y1; 1788b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project r.y2 = (a.y2 < b.y2) ? a.y2 : b.y2; 1798b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1808b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project skin_box_to_rect( &r, result ); 1818b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return 1; 1828b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} 1838b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1848b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectint 1858b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectskin_rect_equals( SkinRect* r1, SkinRect* r2 ) 1868b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 1878b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return (r1->pos.x == r2->pos.x && r1->pos.y == r2->pos.y && 1888b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project r1->size.w == r2->size.w && r2->size.h == r2->size.h); 1898b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} 1908b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1918b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/** SKIN BOXES 1928b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project **/ 1938b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectvoid 1948b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectskin_box_minmax_init( SkinBox* box ) 1958b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 1968b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project box->x1 = box->y1 = INT_MAX; 1978b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project box->x2 = box->y2 = INT_MIN; 1988b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} 1998b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2008b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectvoid 2018b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectskin_box_minmax_update( SkinBox* a, SkinRect* r ) 2028b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 2038b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project SkinBox b[1]; 2048b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2058b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project skin_box_from_rect(b, r); 2068b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2078b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project if (b->x1 < a->x1) a->x1 = b->x1; 2088b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project if (b->y1 < a->y1) a->y1 = b->y1; 2098b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project if (b->x2 > a->x2) a->x2 = b->x2; 2108b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project if (b->y2 > a->y2) a->y2 = b->y2; 2118b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} 2128b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2138b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectint 2148b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectskin_box_minmax_to_rect( SkinBox* box, SkinRect* r ) 2158b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 2168b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project if (box->x1 > box->x2) { 2178b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project r->pos.x = r->pos.y = r->size.w = r->size.h = 0; 2188b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return 0; 2198b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project } 2208b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project skin_box_to_rect( box, r ); 2218b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return 1; 2228b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} 2238b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2248b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectvoid 2258b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectskin_box_from_rect( SkinBox* box, SkinRect* r ) 2268b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 2278b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project box->x1 = r->pos.x; 2288b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project box->y1 = r->pos.y; 2298b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project box->x2 = r->size.w + box->x1; 2308b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project box->y2 = r->size.h + box->y1; 2318b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} 2328b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2338b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectvoid 2348b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectskin_box_to_rect( SkinBox* box, SkinRect* r ) 2358b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 2368b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project r->pos.x = box->x1; 2378b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project r->pos.y = box->y1; 2388b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project r->size.w = box->x2 - box->x1; 2398b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project r->size.h = box->y2 - box->y1; 2408b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} 2418b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 242