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 sigc;
/**
* Construct an empty RegionSelection.
*/
RegionSelection::RegionSelection ()
{
@ -37,6 +40,11 @@ RegionSelection::RegionSelection ()
_current_end = 0;
}
/**
* Copy constructor.
* @param other RegionSelection to copy.
*/
RegionSelection::RegionSelection (const RegionSelection& other)
{
RegionView::RegionViewGoingAway.connect (mem_fun(*this, &RegionSelection::remove_it));
@ -48,6 +56,11 @@ RegionSelection::RegionSelection (const RegionSelection& other)
_current_end = other._current_end;
}
/**
* operator= to set a RegionSelection to be the same as another.
* @param other Other RegionSelection.
*/
RegionSelection&
RegionSelection::operator= (const RegionSelection& other)
{
@ -66,6 +79,10 @@ RegionSelection::operator= (const RegionSelection& other)
return *this;
}
/**
* Empty this RegionSelection.
*/
void
RegionSelection::clear_all()
{
@ -75,11 +92,22 @@ RegionSelection::clear_all()
_current_end = 0;
}
/**
* @param rv RegionView.
* @return true if this selection contains rv.
*/
bool RegionSelection::contains (RegionView* rv) const
{
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
RegionSelection::add (RegionView* rv)
{
@ -98,19 +126,30 @@ RegionSelection::add (RegionView* rv)
push_back (rv);
// add to layer sorted list
/* add to layer sorted list */
add_to_layer (rv);
return true;
}
/**
* Remove a region from the selection.
* @param rv Region to remove.
*/
void
RegionSelection::remove_it (RegionView *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
RegionSelection::remove (RegionView* rv)
{
@ -174,6 +213,11 @@ RegionSelection::remove (RegionView* rv)
return false;
}
/**
* Add a region to the list sorted by layer.
* @param rv Region to add.
*/
void
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
RegionSelection::by_position (list<RegionView*>& foo) const
{
@ -226,7 +275,13 @@ struct RegionSortByTrack {
}
}
};
/**
* @param List which will be filled with the selection's regions
* sorted by track and position.
*/
void
RegionSelection::by_track (list<RegionView*>& foo) const
{
@ -241,6 +296,10 @@ RegionSelection::by_track (list<RegionView*>& foo) const
return;
}
/**
* @param Sort the selection by position and track.
*/
void
RegionSelection::sort_by_position_and_track ()
{
@ -248,6 +307,11 @@ RegionSelection::sort_by_position_and_track ()
sort (sorter);
}
/**
* @param tv Track.
* @return true if any of the selection's regions are on tv.
*/
bool
RegionSelection::involves (const TimeAxisView& tv) const
{

View file

@ -29,6 +29,10 @@ using std::set;
class RegionView;
/**
* Class to represent list of selected regions.
*/
class RegionSelection : public std::list<RegionView*>, public sigc::trackable
{
public:
@ -65,10 +69,10 @@ class RegionSelection : public std::list<RegionView*>, public sigc::trackable
void add_to_layer (RegionView *);
nframes_t _current_start;
nframes_t _current_end;
nframes_t _current_start; ///< start position for the selection
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__ */