Unity 8
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 #include <stdint.h>
27 
28 
29 typedef int XcursorBool;
30 typedef uint32_t XcursorUInt;
31 
32 typedef XcursorUInt XcursorDim;
33 typedef XcursorUInt XcursorPixel;
34 
35 typedef struct _XcursorImage {
36  XcursorUInt version; /* version of the image data */
37  XcursorDim size; /* nominal size for matching */
38  XcursorDim width; /* actual width */
39  XcursorDim height; /* actual height */
40  XcursorDim xhot; /* hot spot x (must be inside image) */
41  XcursorDim yhot; /* hot spot y (must be inside image) */
42  XcursorUInt delay; /* animation delay to next frame (ms) */
43  XcursorPixel *pixels; /* pointer to pixels */
44 } XcursorImage;
45 
46 /*
47  * Other data structures exposed by the library API
48  */
49 typedef struct _XcursorImages {
50  int nimage; /* number of images */
51  XcursorImage **images; /* array of XcursorImage pointers */
52  char *name; /* name used to load images */
53 } XcursorImages;
54 
55 XcursorImages *
56 XcursorLibraryLoadImages (const char *file, const char *theme, int size);
57 
58 void
59 XcursorImagesDestroy (XcursorImages *images);
60 
61 void
62 xcursor_load_theme(const char *theme, int size,
63  void (*load_callback)(XcursorImages *, void *),
64  void *user_data);
65 #endif