/* SLiM - Simple Login Manager Copyright (C) 2004-06 Simone Rota Copyright (C) 2004-06 Johannes Winkelmann 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. */ #ifndef _CFG_H_ #define _CFG_H_ #include #include #include #define INPUT_MAXLENGTH_NAME 30 #define INPUT_MAXLENGTH_PASSWD 50 #define CFGFILE SYSCONFDIR"/slim.conf" #define THEMESDIR PKGDATADIR"/themes" #define THEMESFILE "/slim.theme" class Cfg { public: Cfg(); ~Cfg(); bool readConf(std::string configfile); std::string parseOption(std::string line, std::string option); const std::string& getError() const; std::string& getOption(std::string option); int getIntOption(std::string option); std::string getWelcomeMessage(); static int absolutepos(const std::string& position, int max, int width); static int string2int(const char* string, bool* ok = 0); static void split(std::vector& v, const std::string& str, char c, bool useEmpty=true); static std::string Trim(const std::string& s); std::string nextSession(std::string current); private: void fillSessionList(); private: std::map options; std::vector sessions; int currentSession; std::string error; }; #endif /* _CFG_H_ */