00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef RAUL_LASH_PROJECT_HPP
00019 #define RAUL_LASH_PROJECT_HPP
00020
00021 #include <string>
00022 #include <sigc++/sigc++.h>
00023 #include <raul/SharedPtr.hpp>
00024 #include <raul/WeakPtr.hpp>
00025 #include <raul/LashClient.hpp>
00026
00027 namespace Raul {
00028
00029
00030 class LashProject : public sigc::trackable {
00031 public:
00032 LashProject(SharedPtr<LashClient> client, const std::string& name);
00033
00034 void save();
00035 void close();
00036
00037 const std::string& name() { return _name; }
00038 const std::string& directory() { return _directory; }
00039
00040 void set_directory(const std::string& filename);
00041 void set_name(const std::string& name);
00042
00043 sigc::signal<void, const std::string&> signal_name;
00044 sigc::signal<void, const std::string&> signal_directory;
00045 sigc::signal<void, const std::string&> signal_save_file;
00046 sigc::signal<void, const std::string&> signal_restore_file;
00047
00048 bool operator==(const std::string& name) { return _name == name; }
00049
00050 private:
00051 WeakPtr<LashClient> _client;
00052 std::string _name;
00053 std::string _directory;
00054 };
00055
00056
00057 }
00058
00059 #endif // RAUL_LASH_PROJECT_HPP
00060