#ifndef XPROP_H_HEADER_INCLUDED #define XPROP_H_HEADER_INCLUDED #include "astypes.h" #include "output.h" /************************************************************************/ /* Utility data structures : */ /************************************************************************/ typedef struct AtomXref { char *name; Atom *variable; ASFlagType flag; Atom atom; } AtomXref; /*************************************************************************/ /* Interface */ /*************************************************************************/ /* X Atoms : */ Bool intern_atom_list (AtomXref * list); void translate_atom_list (ASFlagType *trg, AtomXref * xref, Atom * list, long nitems); void print_list_hints( stream_func func, void* stream, ASFlagType flags, AtomXref *xref, const char *prompt ); void encode_atom_list ( AtomXref * xref, Atom **list, long *nitems, ASFlagType flags); Bool read_32bit_proplist (Window w, Atom property, long estimate, CARD32 ** list, long *nitems); Bool read_string_property (Window w, Atom property, char **trg); Bool read_text_property (Window w, Atom property, XTextProperty ** trg); Bool read_32bit_property (Window w, Atom property, CARD32 * trg); /* This will return contents of X property of XA_INTEGER type * in case of success it returns array of unsigned long elements * data_size - will hold the size of returned data * version - will hold the version of retrieved data */ Bool read_as_property ( Window w, Atom property, size_t * data_size, unsigned long *version, unsigned long **trg); char *text_property2string( XTextProperty *tprop); void print_text_property( stream_func func, void* stream, XTextProperty *tprop, const char *prompt ); void free_text_property (XTextProperty ** trg); /* Writing properties : */ void set_32bit_property (Window w, Atom property, Atom type, CARD32 data); void set_multi32bit_property (Window w, Atom property, Atom type, int items, ...); void set_32bit_proplist (Window w, Atom property, Atom type, CARD32 * list, long nitems); void set_string_property (Window w, Atom property, char *data); typedef enum { TPE_String, TPE_UTF8 }ASTextEncoding; void set_text_property (Window w, Atom property, char** data, int items_num, ASTextEncoding encoding); /* This will set X property of XA_INTEGER type to the array of data of * the specifyed size */ void set_as_property ( Window w, Atom name, unsigned long *data, size_t data_size, unsigned long version); #endif /* XPROP_H_HEADER_INCLUDED */