Add some comments to the RegionSelection class.

git-svn-id: svn://localhost/ardour2/trunk@2524 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
Carl Hetherington 2007-10-06 17:27:07 +00:00
parent 61872c5663
commit c8a4f8002b
2 changed files with 73 additions and 5 deletions

View file

@ -28,6 +28,9 @@ using namespace ARDOUR;
using namespace PBD; using namespace PBD;
using namespace sigc; using namespace sigc;
/**
* Construct an empty RegionSelection.
*/
RegionSelection::RegionSelection () RegionSelection::RegionSelection ()
{ {
@ -37,6 +40,11 @@ RegionSelection::RegionSelection ()
_current_end = 0; _current_end = 0;
} }
/**
* Copy constructor.
* @param other RegionSelection to copy.
*/
RegionSelection::RegionSelection (const RegionSelection& other) RegionSelection::RegionSelection (const RegionSelection& other)
{ {
RegionView::RegionViewGoingAway.connect (mem_fun(*this, &RegionSelection::remove_it)); RegionView::RegionViewGoingAway.connect (mem_fun(*this, &RegionSelection::remove_it));
@ -48,6 +56,11 @@ RegionSelection::RegionSelection (const RegionSelection& other)
_current_end = other._current_end; _current_end = other._current_end;
} }
/**
* operator= to set a RegionSelection to be the same as another.
* @param other Other RegionSelection.
*/
RegionSelection& RegionSelection&
RegionSelection::operator= (const RegionSelection& other) RegionSelection::operator= (const RegionSelection& other)
{ {
@ -66,6 +79,10 @@ RegionSelection::operator= (const RegionSelection& other)
return *this; return *this;
} }
/**
* Empty this RegionSelection.
*/
void void
RegionSelection::clear_all() RegionSelection::clear_all()
{ {
@ -75,11 +92,22 @@ RegionSelection::clear_all()
_current_end = 0; _current_end = 0;
} }
/**
* @param rv RegionView.
* @return true if this selection contains rv.
*/
bool RegionSelection::contains (RegionView* rv) const bool RegionSelection::contains (RegionView* rv) const
{ {
return find (begin(), end(), rv) != end(); return find (begin(), end(), rv) != end();
} }
/**
* Add a region to the selection.
* @param rv Region to add.
* @return false if we already had the region, otherwise true.
*/
bool bool
RegionSelection::add (RegionView* rv) RegionSelection::add (RegionView* rv)
{ {
@ -98,19 +126,30 @@ RegionSelection::add (RegionView* rv)
push_back (rv); push_back (rv);
// add to layer sorted list /* add to layer sorted list */
add_to_layer (rv); add_to_layer (rv);
return true; return true;
} }
/**
* Remove a region from the selection.
* @param rv Region to remove.
*/
void void
RegionSelection::remove_it (RegionView *rv) RegionSelection::remove_it (RegionView *rv)
{ {
remove (rv); remove (rv);
} }
/**
* Remove a region from the selection.
* @param rv Region to remove.
* @return true if the region was in the selection, false if not.
*/
bool bool
RegionSelection::remove (RegionView* rv) RegionSelection::remove (RegionView* rv)
{ {
@ -174,6 +213,11 @@ RegionSelection::remove (RegionView* rv)
return false; return false;
} }
/**
* Add a region to the list sorted by layer.
* @param rv Region to add.
*/
void void
RegionSelection::add_to_layer (RegionView * rv) RegionSelection::add_to_layer (RegionView * rv)
{ {
@ -200,6 +244,11 @@ struct RegionSortByTime {
}; };
/**
* @param foo List which will be filled with the selection's regions
* sorted by position.
*/
void void
RegionSelection::by_position (list<RegionView*>& foo) const RegionSelection::by_position (list<RegionView*>& foo) const
{ {
@ -227,6 +276,12 @@ struct RegionSortByTrack {
} }
}; };
/**
* @param List which will be filled with the selection's regions
* sorted by track and position.
*/
void void
RegionSelection::by_track (list<RegionView*>& foo) const RegionSelection::by_track (list<RegionView*>& foo) const
{ {
@ -241,6 +296,10 @@ RegionSelection::by_track (list<RegionView*>& foo) const
return; return;
} }
/**
* @param Sort the selection by position and track.
*/
void void
RegionSelection::sort_by_position_and_track () RegionSelection::sort_by_position_and_track ()
{ {
@ -248,6 +307,11 @@ RegionSelection::sort_by_position_and_track ()
sort (sorter); sort (sorter);
} }
/**
* @param tv Track.
* @return true if any of the selection's regions are on tv.
*/
bool bool
RegionSelection::involves (const TimeAxisView& tv) const RegionSelection::involves (const TimeAxisView& tv) const
{ {

View file

@ -29,6 +29,10 @@ using std::set;
class RegionView; class RegionView;
/**
* Class to represent list of selected regions.
*/
class RegionSelection : public std::list<RegionView*>, public sigc::trackable class RegionSelection : public std::list<RegionView*>, public sigc::trackable
{ {
public: public:
@ -65,10 +69,10 @@ class RegionSelection : public std::list<RegionView*>, public sigc::trackable
void add_to_layer (RegionView *); void add_to_layer (RegionView *);
nframes_t _current_start; nframes_t _current_start; ///< start position for the selection
nframes_t _current_end; nframes_t _current_end; ///< end position for the selection
list<RegionView *> _bylayer; list<RegionView *> _bylayer; ///< list of regions sorted by layer
}; };
#endif /* __ardour_gtk_region_selection_h__ */ #endif /* __ardour_gtk_region_selection_h__ */