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
|
#ifndef BACKGROUND_H_INCLUDED
#define BACKGROUND_H_INCLUDED
#ifdef __cplusplus
extern "C" {
#endif
#define BGFLAG_FILE (1<<1) /* if not FILE then MyStyle or CMD */
#define BGFLAG_MYSTYLE (1<<2)
#define BGFLAG_CUT (1<<3)
#define BGFLAG_TINT (1<<4)
#define BGFLAG_SCALE (1<<5)
#define BGFLAG_ALIGN (1<<6)
#define BGFLAG_ALIGN_CENTER (1<<7)
#define BGFLAG_ALIGN_RIGHT (1<<8)
#define BGFLAG_ALIGN_BOTTOM (1<<9)
#define BGFLAG_PAD (1<<10)
#define BGFLAG_PAD_VERT (1<<11)
#define BGFLAG_PAD_HOR (1<<12)
#define BGFLAG_BAD (1<<14)
#define BGFLAG_COMPLETE (1<<15)
typedef union
{
Atom atom;
Pixmap pixmap;
}
StoredBackData;
typedef struct ASDeskBack
{
unsigned long desk;
Atom data_type; /* XA_PIXMAP if Pixmap 0 if InternAtom */
StoredBackData data;
Atom MyStyle; /* we should watch for MyStyles's updates
if this is not NULL */
}
ASDeskBack;
typedef struct
{
ASDeskBack *desks;
unsigned long desks_num;
}
ASDeskBackArray;
ASDeskBack *FindDeskBack (ASDeskBackArray * backs, long desk);
int IsPurePixmap (ASDeskBack * back);
void SetRootPixmapPropertyID (Atom id);
void BackgroundSetForDesk (ASDeskBackArray * backs, long desk);
void FreeDeskBackArray (ASDeskBackArray * backs, int free_pixmaps);
ASDeskBackArray *UpdateDeskBackArray (ASDeskBackArray * old_info, ASDeskBackArray * new_info);
#define AS_BACKGROUND_ATOM_DEF {None,"_AS_BACKGROUND", XA_INTEGER}
#define XROOTPMAP_ID_ATOM_DEF {None,"_XROOTPMAP_ID", XA_PIXMAP}
void SetBackgroundsProperty (ASDeskBackArray * backs, Atom property);
void GetBackgroundsProperty (ASDeskBackArray * backs, Atom property);
#ifdef DEBUG_BACKGROUNDS
void PrintDeskBackArray (ASDeskBackArray * backs);
#else
#define PrintDeskBackArray(x)
#endif
#ifdef __cplusplus
}
#endif
#endif
|