Home | History | Annotate | Download | only in skin
      1 /* Copyright (C) 2007-2008 The Android Open Source Project
      2 **
      3 ** This software is licensed under the terms of the GNU General Public
      4 ** License version 2, as published by the Free Software Foundation, and
      5 ** may be copied, distributed, and modified under those terms.
      6 **
      7 ** This program is distributed in the hope that it will be useful,
      8 ** but WITHOUT ANY WARRANTY; without even the implied warranty of
      9 ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     10 ** GNU General Public License for more details.
     11 */
     12 #ifndef _ANDROID_SKIN_RECT_H
     13 #define _ANDROID_SKIN_RECT_H
     14 
     15 /**  Rectangles
     16  **/
     17 
     18 typedef enum {
     19     SKIN_ROTATION_0,
     20     SKIN_ROTATION_90,
     21     SKIN_ROTATION_180,
     22     SKIN_ROTATION_270
     23 } SkinRotation;
     24 
     25 typedef struct {
     26     int  x, y;
     27 } SkinPos;
     28 
     29 extern void  skin_pos_rotate( SkinPos*  dst, SkinPos*  src, SkinRotation  rot );
     30 
     31 typedef struct {
     32     int  w, h;
     33 } SkinSize;
     34 
     35 extern void skin_size_rotate( SkinSize*  dst, SkinSize*  src, SkinRotation  rot );
     36 extern int  skin_size_contains( SkinSize*  size, int  x, int  y );
     37 
     38 
     39 typedef struct {
     40     SkinPos   pos;
     41     SkinSize  size;
     42 } SkinRect;
     43 
     44 extern void  skin_rect_init     ( SkinRect*  r, int x, int y, int  w, int  h );
     45 extern void  skin_rect_translate( SkinRect*  r, int  dx, int dy );
     46 extern void  skin_rect_rotate   ( SkinRect*  dst, SkinRect*  src, SkinRotation  rotation );
     47 extern int   skin_rect_contains ( SkinRect*  r, int  x, int  y );
     48 extern int   skin_rect_intersect( SkinRect*  result, SkinRect*  r1, SkinRect*  r2 );
     49 extern int   skin_rect_equals   ( SkinRect*  r1, SkinRect*  r2 );
     50 
     51 typedef enum {
     52     SKIN_OUTSIDE = 0,
     53     SKIN_INSIDE  = 1,
     54     SKIN_OVERLAP = 2
     55 } SkinOverlap;
     56 
     57 extern SkinOverlap  skin_rect_contains_rect( SkinRect  *r1, SkinRect  *r2 );
     58 
     59 typedef struct {
     60     int  x1, y1;
     61     int  x2, y2;
     62 } SkinBox;
     63 
     64 extern void  skin_box_init( SkinBox*  box, int x1, int  y1, int  x2, int  y2 );
     65 extern void  skin_box_minmax_init( SkinBox*  box );
     66 extern void  skin_box_minmax_update( SkinBox*  box, SkinRect*  rect );
     67 extern int   skin_box_minmax_to_rect( SkinBox*  box, SkinRect*  rect );
     68 extern void  skin_box_from_rect( SkinBox*  box, SkinRect*  rect );
     69 extern void  skin_box_to_rect( SkinBox*  box, SkinRect*  rect );
     70 
     71 #endif /* _ANDROID_SKIN_RECT_H */
     72