Blob Blame Raw


#ifndef TFILMSTRIPSELECTION_H
#define TFILMSTRIPSELECTION_H

#include "toonzqt/selection.h"
#include "tfilepath.h"
#include <set>

class TXshSimpleLevel;

//=============================================================================
// TFilmStripSelection
//-----------------------------------------------------------------------------

class TFilmstripSelection : public TSelection
{
public:
	typedef std::pair<TFrameId, TFrameId> InbetweenRange;

private:
	std::set<TFrameId> m_selectedFrames;
	InbetweenRange m_inbetweenRange;

	void updateInbetweenRange();

public:
	TFilmstripSelection();
	~TFilmstripSelection();

	void enableCommands();

	bool isEmpty() const;

	void selectNone();
	void select(const TFrameId &fid, bool selected = true);
	bool isSelected(const TFrameId &fid) const;

	const std::set<TFrameId> &getSelectedFids() const { return m_selectedFrames; }

	InbetweenRange getInbetweenRange() const { return m_inbetweenRange; }
	bool isInInbetweenRange(const TFrameId &fid) const { return m_inbetweenRange.first < fid && fid < m_inbetweenRange.second; }

	void selectAll();
	void invertSelection();
	void copyFrames();
	void cutFrames();
	void pasteFrames();
	void mergeFrames();
	void pasteInto();
	void deleteFrames();
	void insertEmptyFrames();
	void addFrames();
	void reverseFrames();
	void swingFrames();
	void stepFrames(int step);
	void eachFrames(int step);
	void duplicateFrames();
	void exposeFrames();
	void renumberFrames();
};

#endif // TFILMSTRIPSELECTION_H