/usr/include/libaosd/aosd.h is in libaosd-dev 0.2.7-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 | /* aosd -- OSD with transparency, cairo, and pango.
*
* Copyright (C) 2006 Evan Martin <martine@danga.com>
*
* With further development by Giacomo Lozito <james@develia.org>
* - added real transparency with X Composite Extension
* - added mouse event handling on OSD window
* - added/changed some other stuff
*/
#ifndef __AOSD_H__
#define __AOSD_H__
#include <X11/Xutil.h>
#include <cairo/cairo.h>
#ifdef __cplusplus
extern "C"
{
#endif
/* global object type */
typedef struct _Aosd Aosd;
// relative coordinates for positioning
typedef enum {
COORDINATE_MINIMUM = 0,
COORDINATE_CENTER,
COORDINATE_MAXIMUM
} AosdCoordinate;
/* minimal struct to handle mouse events */
typedef struct
{
// relative coordinates
int x, y;
// global coordinates
int x_root, y_root;
int send_event;
// button being pressed
unsigned int button;
unsigned long time;
}
AosdMouseEvent;
/* various callbacks */
typedef void (*AosdRenderer)(cairo_t* cr, void* user_data);
typedef void (*AosdMouseEventCb)(AosdMouseEvent* event, void* user_data);
typedef enum
{
TRANSPARENCY_NONE = 0,
TRANSPARENCY_FAKE,
TRANSPARENCY_COMPOSITE
} AosdTransparency;
/* object (de)allocators */
Aosd* aosd_new(void);
void aosd_destroy(Aosd* aosd);
/* object inspectors */
void aosd_get_name(Aosd* aosd, XClassHint* result);
void aosd_get_names(Aosd* aosd, char** res_name, char** res_class);
AosdTransparency aosd_get_transparency(Aosd* aosd);
void aosd_get_geometry(Aosd* aosd, int* x, int* y, int* width, int* height);
void aosd_get_screen_size(Aosd* aosd, int* width, int* height);
Bool aosd_get_is_shown(Aosd* aosd);
/* object configurators */
void aosd_set_name(Aosd* aosd, XClassHint* name);
void aosd_set_names(Aosd* aosd, const char* res_name, const char* res_class);
void aosd_set_transparency(Aosd* aosd, AosdTransparency mode);
void aosd_set_geometry(Aosd* aosd, int x, int y, int width, int height);
void aosd_set_position(Aosd* aosd, unsigned pos, int width, int height);
void aosd_set_position_offset(Aosd* aosd, int x_offset, int y_offset);
void aosd_set_position_with_offset(Aosd* aosd,
AosdCoordinate abscissa, AosdCoordinate ordinate, int width, int height,
int x_offset, int y_offset);
void aosd_set_renderer(Aosd* aosd, AosdRenderer renderer, void* user_data);
void aosd_set_mouse_event_cb(Aosd* aosd, AosdMouseEventCb cb, void* user_data);
void aosd_set_hide_upon_mouse_event(Aosd* aosd, Bool enable);
/* object manipulators */
void aosd_render(Aosd* aosd);
void aosd_show(Aosd* aosd);
void aosd_hide(Aosd* aosd);
/* X main loop processing */
void aosd_loop_once(Aosd* aosd);
void aosd_loop_for(Aosd* aosd, unsigned loop_ms);
/* automatic object manipulator */
void aosd_flash(Aosd* aosd, unsigned fade_in_ms,
unsigned full_ms, unsigned fade_out_ms);
#ifdef __cplusplus
}
#endif
#endif /* __AOSD_H__ */
/* vim: set ts=2 sw=2 et : */
|