/* -*- indent-tabs-mode: nil; tab-width: 4; c-basic-offset: 4; -*-
parse.h for the Azalea window manager
Copyright (c) 2006 Yen-Ju Chen
parse.h for the Openbox window manager
Copyright (c) 2003 Ben Jansens
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
See the COPYING file for a copy of the GNU General Public License.
*/
#ifndef __parse_h
#define __parse_h
#import <Foundation/Foundation.h>
#import "version.h"
#import <libxml/parser.h>
@class AZParser;
typedef void (*ParseCallback)(AZParser *i, xmlDocPtr doc, xmlNodePtr node,
void *data);
@interface AZParser: NSObject
{
NSMutableDictionary *callbacks;
}
- (void) registerTag: (NSString *) tag callback: (ParseCallback) func data: (void *) data;
- (void) parseDocument: (xmlDocPtr) doc node: (xmlNodePtr) node;
@end
/* Loads Openbox's rc, from the normal paths */
BOOL parse_load_rc(xmlDocPtr *doc, xmlNodePtr *root);
/* Loads an Openbox menu, from the normal paths */
BOOL parse_load_menu(NSString *file, xmlDocPtr *doc, xmlNodePtr *root);
/* open/close */
BOOL parse_load(NSString *path, const char *rootname,
xmlDocPtr *doc, xmlNodePtr *root);
BOOL parse_load_mem(void *data, unsigned int len, const char *rootname,
xmlDocPtr *doc, xmlNodePtr *root);
void parse_close(xmlDocPtr doc);
/* helpers */
xmlNodePtr parse_find_node(const char *tag, xmlNodePtr node);
/* Autoreleased string */
NSString *parse_string(xmlDocPtr doc, xmlNodePtr node);
int parse_int(xmlDocPtr doc, xmlNodePtr node);
BOOL parse_bool(xmlDocPtr doc, xmlNodePtr node);
BOOL parse_contains(const char *val, xmlDocPtr doc, xmlNodePtr node);
BOOL parse_attr_contains(const char *val, xmlNodePtr node, const char *name);
/* return autoreleased string */
BOOL parse_attr_string(const char *name, xmlNodePtr node, NSString **value);
BOOL parse_attr_int(const char *name, xmlNodePtr node, int *value);
/* paths */
void parse_paths_startup();
void parse_paths_shutdown();
NSString *parse_xdg_config_home_path();
NSString *parse_xdg_data_home_path();
NSArray *parse_xdg_config_dir_paths();
NSArray *parse_xdg_data_dir_paths();
/*! Makes a directory and all its parents */
BOOL parse_mkdir_path(NSString *path, int mode);
#endif
syntax highlighted by Code2HTML, v. 0.9.1