X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Flibr2c2%2Fzone.h;h=9688c3419540bcf17173bcfbd49d853875f426ff;hb=9f0d428e974defa64cdf8e7b7072967327250958;hp=98feb670a3ab4a49fd36a4e117495ceddae5193a;hpb=7e27b311e33beda1746eb63e0945633f262427f6;p=r2c2.git diff --git a/source/libr2c2/zone.h b/source/libr2c2/zone.h index 98feb67..9688c34 100644 --- a/source/libr2c2/zone.h +++ b/source/libr2c2/zone.h @@ -1,23 +1,17 @@ -/* $Id$ - -This file is part of R²C² -Copyright © 2010 Mikkosoft Productions, Mikko Rasa -Distributed under the GPL -*/ - #ifndef LIBR2C2_ZONE_H_ #define LIBR2C2_ZONE_H_ #include #include #include +#include "trackchain.h" namespace R2C2 { class Layout; class Track; -class Zone +class Zone: public TrackChain { public: class Loader: public Msp::DataFile::ObjectLoader @@ -25,38 +19,30 @@ public: public: Loader(Zone &); private: + virtual void finish(); void block(unsigned); }; - typedef std::set TrackSet; - - sigc::signal signal_name_changed; - private: - Layout &layout; std::string group; std::string qualifier; unsigned number; - TrackSet tracks; public: Zone(Layout &); ~Zone(); + virtual void set_name(const std::string &); void set_name(const std::string &, const std::string &, unsigned); +private: + void update_name(); +public: const std::string &get_group() const { return group; } const std::string &get_qualifier() const { return qualifier; } unsigned get_number() const { return number; } - std::string get_name() const; - - void add_track(Track &); - bool add_tracks(const TrackSet &); - const TrackSet &get_tracks() const { return tracks; } - bool has_track(Track &) const; void save(std::list &) const; -private: - bool is_valid(Track &) const; + virtual Msp::DataFile::Statement save_reference() const; }; } // namespace R2C2