1 #ifndef BACKGROUND_H_INCLUDED 2 #define BACKGROUND_H_INCLUDED 3 4 #ifdef __cplusplus 5 extern "C" { 6 #endif 7 8 #define BGFLAG_FILE (1<<1) /* if not FILE then MyStyle or CMD */ 9 #define BGFLAG_MYSTYLE (1<<2) 10 #define BGFLAG_CUT (1<<3) 11 #define BGFLAG_TINT (1<<4) 12 #define BGFLAG_SCALE (1<<5) 13 #define BGFLAG_ALIGN (1<<6) 14 #define BGFLAG_ALIGN_CENTER (1<<7) 15 #define BGFLAG_ALIGN_RIGHT (1<<8) 16 #define BGFLAG_ALIGN_BOTTOM (1<<9) 17 #define BGFLAG_PAD (1<<10) 18 #define BGFLAG_PAD_VERT (1<<11) 19 #define BGFLAG_PAD_HOR (1<<12) 20 #define BGFLAG_BAD (1<<14) 21 #define BGFLAG_COMPLETE (1<<15) 22 23 typedef union 24 { 25 Atom atom; 26 Pixmap pixmap; 27 } 28 StoredBackData; 29 30 typedef struct ASDeskBack 31 { 32 unsigned long desk; 33 Atom data_type; /* XA_PIXMAP if Pixmap 0 if InternAtom */ 34 StoredBackData data; 35 Atom MyStyle; /* we should watch for MyStyles's updates 36 if this is not NULL */ 37 } 38 ASDeskBack; 39 40 typedef struct 41 { 42 ASDeskBack *desks; 43 unsigned long desks_num; 44 } 45 ASDeskBackArray; 46 47 ASDeskBack *FindDeskBack (ASDeskBackArray * backs, long desk); 48 int IsPurePixmap (ASDeskBack * back); 49 void SetRootPixmapPropertyID (Atom id); 50 void BackgroundSetForDesk (ASDeskBackArray * backs, long desk); 51 void FreeDeskBackArray (ASDeskBackArray * backs, int free_pixmaps); 52 ASDeskBackArray *UpdateDeskBackArray (ASDeskBackArray * old_info, ASDeskBackArray * new_info); 53 54 #define AS_BACKGROUND_ATOM_DEF {None,"_AS_BACKGROUND", XA_INTEGER} 55 #define XROOTPMAP_ID_ATOM_DEF {None,"_XROOTPMAP_ID", XA_PIXMAP} 56 57 void SetBackgroundsProperty (ASDeskBackArray * backs, Atom property); 58 void GetBackgroundsProperty (ASDeskBackArray * backs, Atom property); 59 60 #ifdef DEBUG_BACKGROUNDS 61 void PrintDeskBackArray (ASDeskBackArray * backs); 62 #else 63 #define PrintDeskBackArray(x) 64 #endif 65 66 #ifdef __cplusplus 67 } 68 #endif 69 70 71 #endif 72