X-Git-Url: https://git.brokenzipper.com/gitweb?a=blobdiff_plain;f=parser%2Fparse.h;h=e6052cfdb24141b3e95707880d15e4e3c45bb84b;hb=9ea78a4eb0255e8cca6258e5ceb4bfd3e9e9d59e;hp=948bf4ba0e285935892e1b95153a369762290b3d;hpb=8b67ce7030aa22595d77527cdc5b74b84d185a8b;p=chaz%2Fopenbox diff --git a/parser/parse.h b/parser/parse.h index 948bf4ba..e6052cfd 100644 --- a/parser/parse.h +++ b/parser/parse.h @@ -4,24 +4,28 @@ #include #include -typedef void (*ParseCallback)(xmlDocPtr doc, xmlNodePtr node, void *data); +typedef struct _ObParseInst ObParseInst; -void parse_startup(); -void parse_shutdown(); +typedef void (*ParseCallback)(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node, + gpointer data); + +ObParseInst* parse_startup(); +void parse_shutdown(ObParseInst *inst); /* Loads Openbox's rc, from $HOME or $PREFIX as a fallback */ gboolean parse_load_rc(xmlDocPtr *doc, xmlNodePtr *root); -/* callbacks - must call parse_startup to use these */ - -void parse_register(const char *tag, ParseCallback func, void *data); -void parse_tree(xmlDocPtr doc, xmlNodePtr node, void *nothing); +void parse_register(ObParseInst *inst, const char *tag, + ParseCallback func, gpointer data); +void parse_tree(ObParseInst *inst, xmlDocPtr doc, xmlNodePtr node); /* open/close */ gboolean parse_load(const char *path, const char *rootname, xmlDocPtr *doc, xmlNodePtr *root); +gboolean parse_load_mem(gpointer data, guint len, const char *rootname, + xmlDocPtr *doc, xmlNodePtr *root); void parse_close(xmlDocPtr doc);