1*84e872a0SLloyd Pique /* 2*84e872a0SLloyd Pique * Copyright © 2002 Keith Packard 3*84e872a0SLloyd Pique * 4*84e872a0SLloyd Pique * Permission is hereby granted, free of charge, to any person obtaining 5*84e872a0SLloyd Pique * a copy of this software and associated documentation files (the 6*84e872a0SLloyd Pique * "Software"), to deal in the Software without restriction, including 7*84e872a0SLloyd Pique * without limitation the rights to use, copy, modify, merge, publish, 8*84e872a0SLloyd Pique * distribute, sublicense, and/or sell copies of the Software, and to 9*84e872a0SLloyd Pique * permit persons to whom the Software is furnished to do so, subject to 10*84e872a0SLloyd Pique * the following conditions: 11*84e872a0SLloyd Pique * 12*84e872a0SLloyd Pique * The above copyright notice and this permission notice (including the 13*84e872a0SLloyd Pique * next paragraph) shall be included in all copies or substantial 14*84e872a0SLloyd Pique * portions of the Software. 15*84e872a0SLloyd Pique * 16*84e872a0SLloyd Pique * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 17*84e872a0SLloyd Pique * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 18*84e872a0SLloyd Pique * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 19*84e872a0SLloyd Pique * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS 20*84e872a0SLloyd Pique * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN 21*84e872a0SLloyd Pique * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 22*84e872a0SLloyd Pique * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 23*84e872a0SLloyd Pique * SOFTWARE. 24*84e872a0SLloyd Pique */ 25*84e872a0SLloyd Pique 26*84e872a0SLloyd Pique #ifndef XCURSOR_H 27*84e872a0SLloyd Pique #define XCURSOR_H 28*84e872a0SLloyd Pique 29*84e872a0SLloyd Pique #include <stdint.h> 30*84e872a0SLloyd Pique 31*84e872a0SLloyd Pique struct xcursor_image { 32*84e872a0SLloyd Pique uint32_t version; /* version of the image data */ 33*84e872a0SLloyd Pique uint32_t size; /* nominal size for matching */ 34*84e872a0SLloyd Pique uint32_t width; /* actual width */ 35*84e872a0SLloyd Pique uint32_t height; /* actual height */ 36*84e872a0SLloyd Pique uint32_t xhot; /* hot spot x (must be inside image) */ 37*84e872a0SLloyd Pique uint32_t yhot; /* hot spot y (must be inside image) */ 38*84e872a0SLloyd Pique uint32_t delay; /* animation delay to next frame (ms) */ 39*84e872a0SLloyd Pique uint32_t *pixels; /* pointer to pixels */ 40*84e872a0SLloyd Pique }; 41*84e872a0SLloyd Pique 42*84e872a0SLloyd Pique /* 43*84e872a0SLloyd Pique * Other data structures exposed by the library API 44*84e872a0SLloyd Pique */ 45*84e872a0SLloyd Pique struct xcursor_images { 46*84e872a0SLloyd Pique int nimage; /* number of images */ 47*84e872a0SLloyd Pique struct xcursor_image **images; /* array of XcursorImage pointers */ 48*84e872a0SLloyd Pique char *name; /* name used to load images */ 49*84e872a0SLloyd Pique }; 50*84e872a0SLloyd Pique 51*84e872a0SLloyd Pique void 52*84e872a0SLloyd Pique xcursor_images_destroy(struct xcursor_images *images); 53*84e872a0SLloyd Pique 54*84e872a0SLloyd Pique void 55*84e872a0SLloyd Pique xcursor_load_theme(const char *theme, int size, 56*84e872a0SLloyd Pique void (*load_callback)(struct xcursor_images *, void *), 57*84e872a0SLloyd Pique void *user_data); 58*84e872a0SLloyd Pique #endif 59