Wayland: Add missing extern "C"
[profile/ivi/wayland.git] / cursor / xcursor.h
1 /*
2  * Copyright © 2002 Keith Packard
3  *
4  * Permission to use, copy, modify, distribute, and sell this software and its
5  * documentation for any purpose is hereby granted without fee, provided that
6  * the above copyright notice appear in all copies and that both that
7  * copyright notice and this permission notice appear in supporting
8  * documentation, and that the name of Keith Packard not be used in
9  * advertising or publicity pertaining to distribution of the software without
10  * specific, written prior permission.  Keith Packard makes no
11  * representations about the suitability of this software for any purpose.  It
12  * is provided "as is" without express or implied warranty.
13  *
14  * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
15  * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
16  * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
17  * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
18  * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
19  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
20  * PERFORMANCE OF THIS SOFTWARE.
21  */
22
23 #ifndef _XCURSOR_H_
24 #define _XCURSOR_H_
25
26 typedef int             XcursorBool;
27 typedef unsigned int    XcursorUInt;
28
29 typedef XcursorUInt     XcursorDim;
30 typedef XcursorUInt     XcursorPixel;
31
32 typedef struct _XcursorImage {
33     XcursorUInt     version;    /* version of the image data */
34     XcursorDim      size;       /* nominal size for matching */
35     XcursorDim      width;      /* actual width */
36     XcursorDim      height;     /* actual height */
37     XcursorDim      xhot;       /* hot spot x (must be inside image) */
38     XcursorDim      yhot;       /* hot spot y (must be inside image) */
39     XcursorUInt     delay;      /* animation delay to next frame (ms) */
40     XcursorPixel    *pixels;    /* pointer to pixels */
41 } XcursorImage;
42
43 /*
44  * Other data structures exposed by the library API
45  */
46 typedef struct _XcursorImages {
47     int             nimage;     /* number of images */
48     XcursorImage    **images;   /* array of XcursorImage pointers */
49     char            *name;      /* name used to load images */
50 } XcursorImages;
51
52 XcursorImages *
53 XcursorLibraryLoadImages (const char *file, const char *theme, int size);
54
55 void
56 XcursorImagesDestroy (XcursorImages *images);
57
58 #endif