2
* IceWM - Definition of a parser for IceWM's menu files
3
* Copyright (C) 2002 The Authors of IceWM
5
* Release under terms of the GNU Library General Public License
8
#ifndef __YMENU_PARSER_H
9
#define __YMENU_PARSER_H
16
/*******************************************************************************
18
******************************************************************************/
20
class YAbstractMenuParser: public YParser {
22
virtual void createSeparator(void) = 0;
23
virtual void createProgram(const char *name, YIcon *icon,
24
const char *wmclass, const char *command,
26
virtual void createMenu(const char *name, YIcon *icon) = 0;
27
virtual void createAction(const char *name, YIcon *icon,
29
virtual void createInclusion(const char *path, const char *args) = 0;
32
virtual void parseStream();
33
const char *parseProgram(const char *type);
34
const char *parseMenu();
35
const char *parseSeparator();
36
const char *parseInclusion();
37
const char *parseAction();
43
class YMenuParser: public YAbstractMenuParser {
46
virtual ~YMenuParser();
48
const char *getExec() const { return fExec; }
49
const char *getType() const { return fType; }
50
const char *getName() const { return fName; }
51
const char *getIcon() const { return fIcon; }
54
virtual void beginSection(const char *name);
55
virtual void setValue(const char *key, const char *locale,
58
virtual void resetParser();
65
char *fName, *fNameLocale;
68
char *fIcon, *fIconLocale;