annotate src/aosd/ghosd.h @ 911:0010163f8e25 trunk

[svn] - aosd: added support to detect whether a composite manager is running (either standard with _NET_WM_CM_Sn or xcompmgr)
author giacomo
date Wed, 04 Apr 2007 07:48:53 -0700
parents 8b4b381b4399
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
569
d401f87f89f7 [svn] - added Audacious OSD, yet-another-written-from-scratch plugin to display OSD, based on Ghosd library; currently untied from configure, to compile it you have to run make in its directory; will be added to configure after some testing
giacomo
parents:
diff changeset
1 /* ghosd -- OSD with fake transparency, cairo, and pango.
d401f87f89f7 [svn] - added Audacious OSD, yet-another-written-from-scratch plugin to display OSD, based on Ghosd library; currently untied from configure, to compile it you have to run make in its directory; will be added to configure after some testing
giacomo
parents:
diff changeset
2 * Copyright (C) 2006 Evan Martin <martine@danga.com>
590
6584e697e6da [svn] - aosd: extended ghosd source with ghosd_set_event_button_cb to capture and handle button events in osd
giacomo
parents: 569
diff changeset
3 *
6584e697e6da [svn] - aosd: extended ghosd source with ghosd_set_event_button_cb to capture and handle button events in osd
giacomo
parents: 569
diff changeset
4 * With further development by Giacomo Lozito <james@develia.org>
6584e697e6da [svn] - aosd: extended ghosd source with ghosd_set_event_button_cb to capture and handle button events in osd
giacomo
parents: 569
diff changeset
5 * for the ghosd-based Audacious OSD
906
16e51fb5908e [svn] - aosd: beta4, ghosd source was rewritten to support argb visual (x composite extension) as an option, this allows to have real transparency in the OSD
giacomo
parents: 734
diff changeset
6 * - added real transparency with X Composite Extension
16e51fb5908e [svn] - aosd: beta4, ghosd source was rewritten to support argb visual (x composite extension) as an option, this allows to have real transparency in the OSD
giacomo
parents: 734
diff changeset
7 * - added mouse event handling on OSD window
16e51fb5908e [svn] - aosd: beta4, ghosd source was rewritten to support argb visual (x composite extension) as an option, this allows to have real transparency in the OSD
giacomo
parents: 734
diff changeset
8 * - added/changed some other stuff
569
d401f87f89f7 [svn] - added Audacious OSD, yet-another-written-from-scratch plugin to display OSD, based on Ghosd library; currently untied from configure, to compile it you have to run make in its directory; will be added to configure after some testing
giacomo
parents:
diff changeset
9 */
d401f87f89f7 [svn] - added Audacious OSD, yet-another-written-from-scratch plugin to display OSD, based on Ghosd library; currently untied from configure, to compile it you have to run make in its directory; will be added to configure after some testing
giacomo
parents:
diff changeset
10
d401f87f89f7 [svn] - added Audacious OSD, yet-another-written-from-scratch plugin to display OSD, based on Ghosd library; currently untied from configure, to compile it you have to run make in its directory; will be added to configure after some testing
giacomo
parents:
diff changeset
11 #ifndef __GHOSD_H__
d401f87f89f7 [svn] - added Audacious OSD, yet-another-written-from-scratch plugin to display OSD, based on Ghosd library; currently untied from configure, to compile it you have to run make in its directory; will be added to configure after some testing
giacomo
parents:
diff changeset
12 #define __GHOSD_H__
d401f87f89f7 [svn] - added Audacious OSD, yet-another-written-from-scratch plugin to display OSD, based on Ghosd library; currently untied from configure, to compile it you have to run make in its directory; will be added to configure after some testing
giacomo
parents:
diff changeset
13
d401f87f89f7 [svn] - added Audacious OSD, yet-another-written-from-scratch plugin to display OSD, based on Ghosd library; currently untied from configure, to compile it you have to run make in its directory; will be added to configure after some testing
giacomo
parents:
diff changeset
14 #include <cairo/cairo.h>
d401f87f89f7 [svn] - added Audacious OSD, yet-another-written-from-scratch plugin to display OSD, based on Ghosd library; currently untied from configure, to compile it you have to run make in its directory; will be added to configure after some testing
giacomo
parents:
diff changeset
15
734
ff62f5530a36 [svn] - freebsd portability fixes from "The_Paya". Closes #814.
nenolod
parents: 590
diff changeset
16 #include <limits.h> /* INT_MAX */
569
d401f87f89f7 [svn] - added Audacious OSD, yet-another-written-from-scratch plugin to display OSD, based on Ghosd library; currently untied from configure, to compile it you have to run make in its directory; will be added to configure after some testing
giacomo
parents:
diff changeset
17 #include <sys/time.h> /* timeval */
d401f87f89f7 [svn] - added Audacious OSD, yet-another-written-from-scratch plugin to display OSD, based on Ghosd library; currently untied from configure, to compile it you have to run make in its directory; will be added to configure after some testing
giacomo
parents:
diff changeset
18
908
8b4b381b4399 [svn] aosd: added compile option in configure for composite support; this way, if support is compiled in, we can safely check if the composite module is loaded
giacomo
parents: 906
diff changeset
19 #include "aosd_common.h"
8b4b381b4399 [svn] aosd: added compile option in configure for composite support; this way, if support is compiled in, we can safely check if the composite module is loaded
giacomo
parents: 906
diff changeset
20
569
d401f87f89f7 [svn] - added Audacious OSD, yet-another-written-from-scratch plugin to display OSD, based on Ghosd library; currently untied from configure, to compile it you have to run make in its directory; will be added to configure after some testing
giacomo
parents:
diff changeset
21 typedef struct _Ghosd Ghosd;
d401f87f89f7 [svn] - added Audacious OSD, yet-another-written-from-scratch plugin to display OSD, based on Ghosd library; currently untied from configure, to compile it you have to run make in its directory; will be added to configure after some testing
giacomo
parents:
diff changeset
22
590
6584e697e6da [svn] - aosd: extended ghosd source with ghosd_set_event_button_cb to capture and handle button events in osd
giacomo
parents: 569
diff changeset
23 /* minimal struct to handle button events */
6584e697e6da [svn] - aosd: extended ghosd source with ghosd_set_event_button_cb to capture and handle button events in osd
giacomo
parents: 569
diff changeset
24 typedef struct
6584e697e6da [svn] - aosd: extended ghosd source with ghosd_set_event_button_cb to capture and handle button events in osd
giacomo
parents: 569
diff changeset
25 {
6584e697e6da [svn] - aosd: extended ghosd source with ghosd_set_event_button_cb to capture and handle button events in osd
giacomo
parents: 569
diff changeset
26 int x, y;
6584e697e6da [svn] - aosd: extended ghosd source with ghosd_set_event_button_cb to capture and handle button events in osd
giacomo
parents: 569
diff changeset
27 int send_event;
6584e697e6da [svn] - aosd: extended ghosd source with ghosd_set_event_button_cb to capture and handle button events in osd
giacomo
parents: 569
diff changeset
28 int x_root, y_root;
6584e697e6da [svn] - aosd: extended ghosd source with ghosd_set_event_button_cb to capture and handle button events in osd
giacomo
parents: 569
diff changeset
29 unsigned int button;
6584e697e6da [svn] - aosd: extended ghosd source with ghosd_set_event_button_cb to capture and handle button events in osd
giacomo
parents: 569
diff changeset
30 unsigned long time;
6584e697e6da [svn] - aosd: extended ghosd source with ghosd_set_event_button_cb to capture and handle button events in osd
giacomo
parents: 569
diff changeset
31 }
6584e697e6da [svn] - aosd: extended ghosd source with ghosd_set_event_button_cb to capture and handle button events in osd
giacomo
parents: 569
diff changeset
32 GhosdEventButton;
6584e697e6da [svn] - aosd: extended ghosd source with ghosd_set_event_button_cb to capture and handle button events in osd
giacomo
parents: 569
diff changeset
33
569
d401f87f89f7 [svn] - added Audacious OSD, yet-another-written-from-scratch plugin to display OSD, based on Ghosd library; currently untied from configure, to compile it you have to run make in its directory; will be added to configure after some testing
giacomo
parents:
diff changeset
34 typedef void (*GhosdRenderFunc)(Ghosd *ghosd, cairo_t *cr, void *user_data);
590
6584e697e6da [svn] - aosd: extended ghosd source with ghosd_set_event_button_cb to capture and handle button events in osd
giacomo
parents: 569
diff changeset
35 typedef void (*GhosdEventButtonCb)(Ghosd *ghosd, GhosdEventButton *event, void *user_data);
569
d401f87f89f7 [svn] - added Audacious OSD, yet-another-written-from-scratch plugin to display OSD, based on Ghosd library; currently untied from configure, to compile it you have to run make in its directory; will be added to configure after some testing
giacomo
parents:
diff changeset
36
d401f87f89f7 [svn] - added Audacious OSD, yet-another-written-from-scratch plugin to display OSD, based on Ghosd library; currently untied from configure, to compile it you have to run make in its directory; will be added to configure after some testing
giacomo
parents:
diff changeset
37 Ghosd *ghosd_new(void);
908
8b4b381b4399 [svn] aosd: added compile option in configure for composite support; this way, if support is compiled in, we can safely check if the composite module is loaded
giacomo
parents: 906
diff changeset
38 void ghosd_destroy(Ghosd* ghosd);
8b4b381b4399 [svn] aosd: added compile option in configure for composite support; this way, if support is compiled in, we can safely check if the composite module is loaded
giacomo
parents: 906
diff changeset
39 #ifdef HAVE_XCOMPOSITE
906
16e51fb5908e [svn] - aosd: beta4, ghosd source was rewritten to support argb visual (x composite extension) as an option, this allows to have real transparency in the OSD
giacomo
parents: 734
diff changeset
40 Ghosd *ghosd_new_with_argbvisual(void);
911
0010163f8e25 [svn] - aosd: added support to detect whether a composite manager is running (either standard with _NET_WM_CM_Sn or xcompmgr)
giacomo
parents: 908
diff changeset
41 int ghosd_check_composite_ext(void);
0010163f8e25 [svn] - aosd: added support to detect whether a composite manager is running (either standard with _NET_WM_CM_Sn or xcompmgr)
giacomo
parents: 908
diff changeset
42 int ghosd_check_composite_mgr(void);
908
8b4b381b4399 [svn] aosd: added compile option in configure for composite support; this way, if support is compiled in, we can safely check if the composite module is loaded
giacomo
parents: 906
diff changeset
43 #endif
569
d401f87f89f7 [svn] - added Audacious OSD, yet-another-written-from-scratch plugin to display OSD, based on Ghosd library; currently untied from configure, to compile it you have to run make in its directory; will be added to configure after some testing
giacomo
parents:
diff changeset
44
734
ff62f5530a36 [svn] - freebsd portability fixes from "The_Paya". Closes #814.
nenolod
parents: 590
diff changeset
45 #define GHOSD_COORD_CENTER INT_MAX
569
d401f87f89f7 [svn] - added Audacious OSD, yet-another-written-from-scratch plugin to display OSD, based on Ghosd library; currently untied from configure, to compile it you have to run make in its directory; will be added to configure after some testing
giacomo
parents:
diff changeset
46 void ghosd_set_transparent(Ghosd *ghosd, int transparent);
d401f87f89f7 [svn] - added Audacious OSD, yet-another-written-from-scratch plugin to display OSD, based on Ghosd library; currently untied from configure, to compile it you have to run make in its directory; will be added to configure after some testing
giacomo
parents:
diff changeset
47 void ghosd_set_position(Ghosd *ghosd, int x, int y, int width, int height);
d401f87f89f7 [svn] - added Audacious OSD, yet-another-written-from-scratch plugin to display OSD, based on Ghosd library; currently untied from configure, to compile it you have to run make in its directory; will be added to configure after some testing
giacomo
parents:
diff changeset
48 void ghosd_set_render(Ghosd *ghosd, GhosdRenderFunc render_func,
d401f87f89f7 [svn] - added Audacious OSD, yet-another-written-from-scratch plugin to display OSD, based on Ghosd library; currently untied from configure, to compile it you have to run make in its directory; will be added to configure after some testing
giacomo
parents:
diff changeset
49 void* user_data, void (*user_data_d)(void*));
d401f87f89f7 [svn] - added Audacious OSD, yet-another-written-from-scratch plugin to display OSD, based on Ghosd library; currently untied from configure, to compile it you have to run make in its directory; will be added to configure after some testing
giacomo
parents:
diff changeset
50
d401f87f89f7 [svn] - added Audacious OSD, yet-another-written-from-scratch plugin to display OSD, based on Ghosd library; currently untied from configure, to compile it you have to run make in its directory; will be added to configure after some testing
giacomo
parents:
diff changeset
51 void ghosd_render(Ghosd *ghosd);
d401f87f89f7 [svn] - added Audacious OSD, yet-another-written-from-scratch plugin to display OSD, based on Ghosd library; currently untied from configure, to compile it you have to run make in its directory; will be added to configure after some testing
giacomo
parents:
diff changeset
52 void ghosd_show(Ghosd *ghosd);
d401f87f89f7 [svn] - added Audacious OSD, yet-another-written-from-scratch plugin to display OSD, based on Ghosd library; currently untied from configure, to compile it you have to run make in its directory; will be added to configure after some testing
giacomo
parents:
diff changeset
53 void ghosd_hide(Ghosd *ghosd);
d401f87f89f7 [svn] - added Audacious OSD, yet-another-written-from-scratch plugin to display OSD, based on Ghosd library; currently untied from configure, to compile it you have to run make in its directory; will be added to configure after some testing
giacomo
parents:
diff changeset
54
590
6584e697e6da [svn] - aosd: extended ghosd source with ghosd_set_event_button_cb to capture and handle button events in osd
giacomo
parents: 569
diff changeset
55 void ghosd_set_event_button_cb(Ghosd *ghosd, GhosdEventButtonCb cb, void *user_data );
6584e697e6da [svn] - aosd: extended ghosd source with ghosd_set_event_button_cb to capture and handle button events in osd
giacomo
parents: 569
diff changeset
56
569
d401f87f89f7 [svn] - added Audacious OSD, yet-another-written-from-scratch plugin to display OSD, based on Ghosd library; currently untied from configure, to compile it you have to run make in its directory; will be added to configure after some testing
giacomo
parents:
diff changeset
57 void ghosd_main_iterations(Ghosd *ghosd);
d401f87f89f7 [svn] - added Audacious OSD, yet-another-written-from-scratch plugin to display OSD, based on Ghosd library; currently untied from configure, to compile it you have to run make in its directory; will be added to configure after some testing
giacomo
parents:
diff changeset
58 void ghosd_main_until(Ghosd *ghosd, struct timeval *until);
d401f87f89f7 [svn] - added Audacious OSD, yet-another-written-from-scratch plugin to display OSD, based on Ghosd library; currently untied from configure, to compile it you have to run make in its directory; will be added to configure after some testing
giacomo
parents:
diff changeset
59 void ghosd_flash(Ghosd *ghosd, int fade_ms, int total_display_ms);
d401f87f89f7 [svn] - added Audacious OSD, yet-another-written-from-scratch plugin to display OSD, based on Ghosd library; currently untied from configure, to compile it you have to run make in its directory; will be added to configure after some testing
giacomo
parents:
diff changeset
60
d401f87f89f7 [svn] - added Audacious OSD, yet-another-written-from-scratch plugin to display OSD, based on Ghosd library; currently untied from configure, to compile it you have to run make in its directory; will be added to configure after some testing
giacomo
parents:
diff changeset
61 int ghosd_get_socket(Ghosd *ghosd);
d401f87f89f7 [svn] - added Audacious OSD, yet-another-written-from-scratch plugin to display OSD, based on Ghosd library; currently untied from configure, to compile it you have to run make in its directory; will be added to configure after some testing
giacomo
parents:
diff changeset
62
d401f87f89f7 [svn] - added Audacious OSD, yet-another-written-from-scratch plugin to display OSD, based on Ghosd library; currently untied from configure, to compile it you have to run make in its directory; will be added to configure after some testing
giacomo
parents:
diff changeset
63 #endif /* __GHOSD_H__ */
d401f87f89f7 [svn] - added Audacious OSD, yet-another-written-from-scratch plugin to display OSD, based on Ghosd library; currently untied from configure, to compile it you have to run make in its directory; will be added to configure after some testing
giacomo
parents:
diff changeset
64
d401f87f89f7 [svn] - added Audacious OSD, yet-another-written-from-scratch plugin to display OSD, based on Ghosd library; currently untied from configure, to compile it you have to run make in its directory; will be added to configure after some testing
giacomo
parents:
diff changeset
65 /* vim: set ts=2 sw=2 et cino=(0 : */