diff options
Diffstat (limited to 'Swiften/Application/UnixApplication.h')
-rw-r--r-- | Swiften/Application/UnixApplication.h | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/Swiften/Application/UnixApplication.h b/Swiften/Application/UnixApplication.h new file mode 100644 index 0000000..9ec9300 --- /dev/null +++ b/Swiften/Application/UnixApplication.h @@ -0,0 +1,45 @@ +/* + * Copyright (c) 2010 Remko Tronçon + * Licensed under the GNU General Public License v3. + * See Documentation/Licenses/GPLv3.txt for more information. + */ + +#ifndef SWIFTEN_UnixApplication_H +#define SWIFTEN_UnixApplication_H + +#include "Swiften/Application/Application.h" +#include "Swiften/Application/NullApplicationMessageDisplay.h" + +#include <iostream> + +namespace Swift { + class UnixApplication : public Application { + public: + UnixApplication(const String& name) : Application(name) { + } + + virtual ApplicationMessageDisplay* getApplicationMessageDisplay() { + return &messageDisplay_; + } + + virtual boost::filesystem::path getHomeDir() const { + return boost::filesystem::path(getenv("HOME")); + } + + boost::filesystem::path getSettingsDir() const { + boost::filesystem::path result(getHomeDir() / ("." + getApplicationName().getLowerCase().getUTF8String())); + try { + boost::filesystem::create_directory(result); + } + catch (const boost::filesystem::filesystem_error& e) { + std::cerr << "ERROR: " << e.what() << std::endl; + } + return result; + } + + private: + NullApplicationMessageDisplay messageDisplay_; + }; +} + +#endif |