move Parser to FbTk
This commit is contained in:
parent
e8a2f155e8
commit
39224b0142
7 changed files with 31 additions and 30 deletions
|
@ -34,9 +34,9 @@ bool FbMenuParser::open(const std::string &filename) {
|
||||||
return isLoaded();
|
return isLoaded();
|
||||||
}
|
}
|
||||||
|
|
||||||
Parser &FbMenuParser::operator >> (Parser::Item &out) {
|
FbTk::Parser &FbMenuParser::operator >> (FbTk::Parser::Item &out) {
|
||||||
if (eof()) {
|
if (eof()) {
|
||||||
out = Parser::s_empty_item;
|
out = FbTk::Parser::s_empty_item;
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -65,7 +65,7 @@ Parser &FbMenuParser::operator >> (Parser::Item &out) {
|
||||||
break;
|
break;
|
||||||
case DONE: // get new line and call this again
|
case DONE: // get new line and call this again
|
||||||
if (!nextLine()) {
|
if (!nextLine()) {
|
||||||
out = Parser::s_empty_item;
|
out = FbTk::Parser::s_empty_item;
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
return (*this)>>out;
|
return (*this)>>out;
|
||||||
|
@ -86,7 +86,7 @@ Parser &FbMenuParser::operator >> (Parser::Item &out) {
|
||||||
else if (m_curr_token == ICON)
|
else if (m_curr_token == ICON)
|
||||||
m_curr_token = DONE;
|
m_curr_token = DONE;
|
||||||
|
|
||||||
out = Parser::s_empty_item;
|
out = FbTk::Parser::s_empty_item;
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -119,8 +119,8 @@ Parser &FbMenuParser::operator >> (Parser::Item &out) {
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
Parser::Item FbMenuParser::nextItem() {
|
FbTk::Parser::Item FbMenuParser::nextItem() {
|
||||||
Parser::Item item;
|
FbTk::Parser::Item item;
|
||||||
(*this)>>item;
|
(*this)>>item;
|
||||||
return item;
|
return item;
|
||||||
}
|
}
|
||||||
|
|
|
@ -25,11 +25,11 @@
|
||||||
#ifndef FBMENUPARSER_HH
|
#ifndef FBMENUPARSER_HH
|
||||||
#define FBMENUPARSER_HH
|
#define FBMENUPARSER_HH
|
||||||
|
|
||||||
#include "Parser.hh"
|
#include "FbTk/Parser.hh"
|
||||||
|
|
||||||
#include <fstream>
|
#include <fstream>
|
||||||
|
|
||||||
class FbMenuParser: public Parser {
|
class FbMenuParser: public FbTk::Parser {
|
||||||
public:
|
public:
|
||||||
FbMenuParser():m_row(0), m_curr_pos(0), m_curr_token(TYPE) {}
|
FbMenuParser():m_row(0), m_curr_pos(0), m_curr_token(TYPE) {}
|
||||||
FbMenuParser(const std::string &filename):m_row(0), m_curr_pos(0),
|
FbMenuParser(const std::string &filename):m_row(0), m_curr_pos(0),
|
||||||
|
@ -38,8 +38,8 @@ public:
|
||||||
|
|
||||||
bool open(const std::string &filename);
|
bool open(const std::string &filename);
|
||||||
void close() { m_file.close(); }
|
void close() { m_file.close(); }
|
||||||
Parser &operator >> (Parser::Item &out);
|
FbTk::Parser &operator >> (FbTk::Parser::Item &out);
|
||||||
Parser::Item nextItem();
|
FbTk::Parser::Item nextItem();
|
||||||
|
|
||||||
bool isLoaded() const { return m_file.is_open(); }
|
bool isLoaded() const { return m_file.is_open(); }
|
||||||
bool eof() const { return m_file.eof(); }
|
bool eof() const { return m_file.eof(); }
|
||||||
|
|
|
@ -40,7 +40,7 @@ libFbTk_a_SOURCES = App.hh App.cc Color.cc Color.hh Command.hh \
|
||||||
Layer.hh LayerItem.hh MultLayers.cc MultLayers.hh \
|
Layer.hh LayerItem.hh MultLayers.cc MultLayers.hh \
|
||||||
XLayer.cc XLayer.hh XLayerItem.cc XLayerItem.hh \
|
XLayer.cc XLayer.hh XLayerItem.cc XLayerItem.hh \
|
||||||
Resource.hh Resource.cc \
|
Resource.hh Resource.cc \
|
||||||
StringUtil.hh StringUtil.cc \
|
StringUtil.hh StringUtil.cc Parser.hh Parser.cc \
|
||||||
FbString.hh FbString.cc \
|
FbString.hh FbString.cc \
|
||||||
Subject.hh Subject.cc Observer.hh Observer.cc \
|
Subject.hh Subject.cc Observer.hh Observer.cc \
|
||||||
Transparent.hh Transparent.cc \
|
Transparent.hh Transparent.cc \
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
// Parser.cc
|
// Parser.cc for FbTk
|
||||||
// Copyright (c) 2004 - 2006 Fluxbox Team (fluxgen at fluxbox dot org)
|
// Copyright (c) 2004 - 2006 Fluxbox Team (fluxgen at fluxbox dot org)
|
||||||
//
|
//
|
||||||
// Permission is hereby granted, free of charge, to any person obtaining a
|
// Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
|
@ -19,8 +19,8 @@
|
||||||
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||||
// DEALINGS IN THE SOFTWARE.
|
// DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
// $Id$
|
|
||||||
|
|
||||||
#include "Parser.hh"
|
#include "Parser.hh"
|
||||||
|
|
||||||
const Parser::Item Parser::s_empty_item("", "");
|
namespace FbTk {
|
||||||
|
const Parser::Item Parser::s_empty_item("", "");
|
||||||
|
};
|
|
@ -1,4 +1,4 @@
|
||||||
// IconMenuItem.hh for Fluxbox Window Manager
|
// Parser.hh for FbTk
|
||||||
// Copyright (c) 2004 Henrik Kinnunen (fluxgen at fluxbox dot org)
|
// Copyright (c) 2004 Henrik Kinnunen (fluxgen at fluxbox dot org)
|
||||||
// and Simon Bowden (rathnor at users.sourceforge.net)
|
// and Simon Bowden (rathnor at users.sourceforge.net)
|
||||||
//
|
//
|
||||||
|
@ -20,14 +20,14 @@
|
||||||
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||||
// DEALINGS IN THE SOFTWARE.
|
// DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
// $Id$
|
#ifndef FBTK_PARSER_HH
|
||||||
|
#define FBTK_PARSER_HH
|
||||||
#ifndef PARSER_HH
|
|
||||||
#define PARSER_HH
|
|
||||||
|
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <utility>
|
#include <utility>
|
||||||
|
|
||||||
|
namespace FbTk {
|
||||||
|
|
||||||
// interface class for a generic Parser
|
// interface class for a generic Parser
|
||||||
class Parser {
|
class Parser {
|
||||||
public:
|
public:
|
||||||
|
@ -47,5 +47,6 @@ public:
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
}; // end namespace FbTk
|
||||||
|
|
||||||
#endif // PARSER_HH
|
#endif // FBTK_PARSER_HH
|
|
@ -122,7 +122,7 @@ fluxbox_SOURCES = AtomHandler.hh ArrowButton.hh ArrowButton.cc \
|
||||||
CommandDialog.hh CommandDialog.cc SendToMenu.hh SendToMenu.cc \
|
CommandDialog.hh CommandDialog.cc SendToMenu.hh SendToMenu.cc \
|
||||||
AlphaMenu.hh AlphaMenu.cc ObjectResource.hh \
|
AlphaMenu.hh AlphaMenu.cc ObjectResource.hh \
|
||||||
CompareWindow.hh \
|
CompareWindow.hh \
|
||||||
Parser.hh Parser.cc FbMenuParser.hh FbMenuParser.cc \
|
FbMenuParser.hh FbMenuParser.cc \
|
||||||
StyleMenuItem.hh StyleMenuItem.cc \
|
StyleMenuItem.hh StyleMenuItem.cc \
|
||||||
RootCmdMenuItem.hh RootCmdMenuItem.cc\
|
RootCmdMenuItem.hh RootCmdMenuItem.cc\
|
||||||
MenuCreator.hh MenuCreator.cc \
|
MenuCreator.hh MenuCreator.cc \
|
||||||
|
|
|
@ -143,7 +143,7 @@ class ParseItem {
|
||||||
public:
|
public:
|
||||||
explicit ParseItem(FbTk::Menu *menu):m_menu(menu) {}
|
explicit ParseItem(FbTk::Menu *menu):m_menu(menu) {}
|
||||||
|
|
||||||
inline void load(Parser &p, FbTk::StringConvertor &m_labelconvertor) {
|
inline void load(FbTk::Parser &p, FbTk::StringConvertor &m_labelconvertor) {
|
||||||
p>>m_key>>m_label>>m_cmd>>m_icon;
|
p>>m_key>>m_label>>m_cmd>>m_icon;
|
||||||
m_label.second = m_labelconvertor.recode(m_label.second);
|
m_label.second = m_labelconvertor.recode(m_label.second);
|
||||||
}
|
}
|
||||||
|
@ -153,7 +153,7 @@ public:
|
||||||
inline const string &key() const { return m_key.second; }
|
inline const string &key() const { return m_key.second; }
|
||||||
inline FbTk::Menu *menu() { return m_menu; }
|
inline FbTk::Menu *menu() { return m_menu; }
|
||||||
private:
|
private:
|
||||||
Parser::Item m_key, m_label, m_cmd, m_icon;
|
FbTk::Parser::Item m_key, m_label, m_cmd, m_icon;
|
||||||
FbTk::Menu *m_menu;
|
FbTk::Menu *m_menu;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -172,10 +172,10 @@ public:
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static void translateMenuItem(Parser &parse, ParseItem &item, FbTk::StringConvertor &labelconvertor);
|
static void translateMenuItem(FbTk::Parser &parse, ParseItem &item, FbTk::StringConvertor &labelconvertor);
|
||||||
|
|
||||||
|
|
||||||
static void parseMenu(Parser &pars, FbTk::Menu &menu, FbTk::StringConvertor &label_convertor) {
|
static void parseMenu(FbTk::Parser &pars, FbTk::Menu &menu, FbTk::StringConvertor &label_convertor) {
|
||||||
ParseItem pitem(&menu);
|
ParseItem pitem(&menu);
|
||||||
while (!pars.eof()) {
|
while (!pars.eof()) {
|
||||||
pitem.load(pars, label_convertor);
|
pitem.load(pars, label_convertor);
|
||||||
|
@ -185,7 +185,7 @@ static void parseMenu(Parser &pars, FbTk::Menu &menu, FbTk::StringConvertor &lab
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void translateMenuItem(Parser &parse, ParseItem &pitem, FbTk::StringConvertor &labelconvertor) {
|
static void translateMenuItem(FbTk::Parser &parse, ParseItem &pitem, FbTk::StringConvertor &labelconvertor) {
|
||||||
if (pitem.menu() == 0)
|
if (pitem.menu() == 0)
|
||||||
throw string("translateMenuItem: We must have a menu in ParseItem!");
|
throw string("translateMenuItem: We must have a menu in ParseItem!");
|
||||||
|
|
||||||
|
@ -315,8 +315,8 @@ static void translateMenuItem(Parser &parse, ParseItem &pitem, FbTk::StringConve
|
||||||
} else if (str_key == "endencoding") {
|
} else if (str_key == "endencoding") {
|
||||||
MenuCreator::endEncoding();
|
MenuCreator::endEncoding();
|
||||||
}
|
}
|
||||||
else { // ok, if we didn't find any special menu item we try with command parser
|
else { // ok, if we didn't find any special menu item we try with command FbTk::Parser
|
||||||
// we need to attach command with arguments so command parser can parse it
|
// we need to attach command with arguments so command FbTk::Parser can parse it
|
||||||
string line = str_key + " " + str_cmd;
|
string line = str_key + " " + str_cmd;
|
||||||
FbTk::RefCount<FbTk::Command> command(FbTk::ObjectRegistry<FbTk::Command>::instance().parse(line));
|
FbTk::RefCount<FbTk::Command> command(FbTk::ObjectRegistry<FbTk::Command>::instance().parse(line));
|
||||||
if (*command != 0) {
|
if (*command != 0) {
|
||||||
|
@ -341,7 +341,7 @@ static void translateMenuItem(Parser &parse, ParseItem &pitem, FbTk::StringConve
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static void parseWindowMenu(Parser &parse, FbTk::Menu &menu, FbTk::StringConvertor &labelconvertor) {
|
static void parseWindowMenu(FbTk::Parser &parse, FbTk::Menu &menu, FbTk::StringConvertor &labelconvertor) {
|
||||||
|
|
||||||
ParseItem pitem(&menu);
|
ParseItem pitem(&menu);
|
||||||
while (!parse.eof()) {
|
while (!parse.eof()) {
|
||||||
|
|
Loading…
Reference in a new issue