view src/aosd/ghosd-internal.h @ 906:16e51fb5908e trunk

[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
author giacomo
date Sat, 31 Mar 2007 17:44:23 -0700
parents 13cdd6999598
children
line wrap: on
line source

/* ghosd -- OSD with fake transparency, cairo, and pango.
 * Copyright (C) 2006 Evan Martin <martine@danga.com>
 *
 * With further development by Giacomo Lozito <james@develia.org>
 * for the ghosd-based Audacious OSD
 * - added real transparency with X Composite Extension
 * - added mouse event handling on OSD window
 * - added/changed some other stuff
 */

#include <X11/Xlib.h>

#include "ghosd.h"

typedef struct {
  GhosdRenderFunc func;
  void *data;
  void (*data_destroy)(void*);
} RenderCallback;

typedef struct {
  GhosdEventButtonCb func;
  void *data;
} EventButtonCallback;

typedef struct {
  Pixmap pixmap;
  int set;
} GhosdBackground;

struct _Ghosd {
  Display *dpy;
  Window win;
  Window root_win;
  Visual *visual;
  Colormap colormap;
  int screen_num;
  unsigned int depth;
  int transparent;
  int composite;
  int x, y, width, height;

  GhosdBackground background;
  RenderCallback render;
  EventButtonCallback eventbutton;
};

/* vim: set ts=2 sw=2 et cino=(0 : */