all repos — fluxbox @ bfaec62d795ffe17ef82640efa06be6b056475cc

custom fork of the fluxbox windowmanager

remove some unnecessary architecture
Mark Tiefenbruck mark@fluxbox.org
commit

bfaec62d795ffe17ef82640efa06be6b056475cc

parent

b7e693c42518a2558d9a18b9eab6a55122ce1f43

4 files changed, 22 insertions(+), 71 deletions(-)

jump to
M src/CommandDialog.ccsrc/CommandDialog.cc

@@ -167,8 +167,8 @@ XBell(FbTk::App::instance()->display(), 0);

return; } - FbTk::ObjectRegistry<FbTk::CommandParser<void>::Creator>::CreatorMap::const_iterator it = FbTk::ObjectRegistry<FbTk::CommandParser<void>::Creator>::instance().creatorMap().begin(); - const FbTk::ObjectRegistry<FbTk::CommandParser<void>::Creator>::CreatorMap::const_iterator it_end = FbTk::ObjectRegistry<FbTk::CommandParser<void>::Creator>::instance().creatorMap().end(); + FbTk::CommandParser<void>::CreatorMap::const_iterator it = FbTk::CommandParser<void>::instance().creatorMap().begin(); + const FbTk::CommandParser<void>::CreatorMap::const_iterator it_end = FbTk::CommandParser<void>::instance().creatorMap().end(); vector<string> matches; for (; it != it_end; ++it) { if ((*it).first.find(prefix) == 0) {
M src/FbTk/CommandParser.hhsrc/FbTk/CommandParser.hh

@@ -22,8 +22,10 @@

#ifndef CommandParser_HH #define CommandParser_HH -#include "ObjectRegistry.hh" #include "StringUtil.hh" + +#include <string> +#include <map> using std::string;

@@ -86,6 +88,7 @@ template <typename Type>

class CommandParser { public: typedef Command<Type> *(*Creator)(const string &, const string &, bool); + typedef std::map<std::string, Creator> CreatorMap; static CommandParser<Type> &instance() { static CommandParser<Type> s_instance;

@@ -93,9 +96,9 @@ return s_instance;

} Command<Type> *parse(const string &name, const string &args, - bool trusted = true) const { + bool trusted = true) const { string lc = StringUtil::toLower(name); - Creator creator = ObjectRegistry<Creator>::instance().lookup(lc); + Creator creator = lookup(lc); if (creator) return creator(lc, args, trusted); return 0;

@@ -114,13 +117,24 @@ }

bool registerCommand(string name, Creator creator) { name = StringUtil::toLower(name); - return ObjectRegistry<Creator>::instance().registerObject(name, - creator); + m_creators[name] = creator; + return true; } + Creator lookup(const std::string &name) const { + typename CreatorMap::const_iterator it = m_creators.find(name); + if (it == m_creators.end()) + return 0; + return it->second; + } + + const CreatorMap creatorMap() const { return m_creators; } + private: CommandParser() {} ~CommandParser() {} + + CreatorMap m_creators; }; } // end namespace FbTk
M src/FbTk/Makefile.amsrc/FbTk/Makefile.am

@@ -16,7 +16,7 @@ imlib2_SOURCE= ImageImlib2.hh ImageImlib2.cc

endif libFbTk_a_SOURCES = App.hh App.cc Color.cc Color.hh Command.hh \ - ObjectRegistry.hh Accessor.hh DefaultValue.hh \ + Accessor.hh DefaultValue.hh \ FileUtil.hh FileUtil.cc \ EventHandler.hh EventManager.hh EventManager.cc \ FbWindow.hh FbWindow.cc Font.cc Font.hh FontImp.hh \
D src/FbTk/ObjectRegistry.hh

@@ -1,63 +0,0 @@

-// ObjectRegistry.hh for FbTk -// Copyright (c) 2007 Fluxbox Team (fluxgen at fluxbox dot org) -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the "Software"), -// to deal in the Software without restriction, including without limitation -// the rights to use, copy, modify, merge, publish, distribute, sublicense, -// and/or sell copies of the Software, and to permit persons to whom the -// Software is furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -// DEALINGS IN THE SOFTWARE. - -#ifndef OBJECTREGISTRY_HH -#define OBJECTREGISTRY_HH - -#include <map> -#include <string> - -namespace FbTk { - -template <typename Creator> -class ObjectRegistry { -public: - typedef std::map<std::string, Creator> CreatorMap; - - static ObjectRegistry<Creator> &instance() { - static ObjectRegistry<Creator> s_instance; - return s_instance; - } - - Creator lookup(const std::string &name) { - typename CreatorMap::const_iterator it = m_creators.find(name); - if (it == m_creators.end()) - return 0; - return it->second; - } - - bool registerObject(const std::string &name, Creator creator) { - m_creators[name] = creator; - return true; - } - - const CreatorMap creatorMap() const { return m_creators; } - -private: - ObjectRegistry() {} - ~ObjectRegistry() {} - - CreatorMap m_creators; -}; - -} // end namespace FbTk - -#endif // OBJECTREGISTRY_HH