Shinya Kitaoka 810553
#pragma once
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
#ifndef TFILMSTRIPSELECTION_H
Toshihiro Shimizu 890ddd
#define TFILMSTRIPSELECTION_H
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
#include "toonzqt/selection.h"
Toshihiro Shimizu 890ddd
#include "tfilepath.h"
Toshihiro Shimizu 890ddd
#include <set></set>
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
class TXshSimpleLevel;
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
//=============================================================================
Toshihiro Shimizu 890ddd
// TFilmStripSelection
Toshihiro Shimizu 890ddd
//-----------------------------------------------------------------------------
Toshihiro Shimizu 890ddd
Shinya Kitaoka d1f6c4
class TFilmstripSelection final : public TSelection {
Toshihiro Shimizu 890ddd
public:
Shinya Kitaoka 120a6e
  typedef std::pair<tframeid, tframeid=""> InbetweenRange;</tframeid,>
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
private:
Shinya Kitaoka 120a6e
  std::set<tframeid> m_selectedFrames;</tframeid>
Shinya Kitaoka 120a6e
  InbetweenRange m_inbetweenRange;
Toshihiro Shimizu 890ddd
Shinya Kitaoka 120a6e
  void updateInbetweenRange();
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
public:
Shinya Kitaoka 120a6e
  TFilmstripSelection();
Shinya Kitaoka 120a6e
  ~TFilmstripSelection();
Shinya Kitaoka 120a6e
Shinya Kitaoka 473e70
  void enableCommands() override;
Shinya Kitaoka 120a6e
Shinya Kitaoka 473e70
  bool isEmpty() const override;
Shinya Kitaoka 120a6e
Shinya Kitaoka 473e70
  void selectNone() override;
Shinya Kitaoka 120a6e
  void select(const TFrameId &fid, bool selected = true);
Shinya Kitaoka 120a6e
  bool isSelected(const TFrameId &fid) const;
Shinya Kitaoka 120a6e
Shinya Kitaoka 120a6e
  const std::set<tframeid> &getSelectedFids() const { return m_selectedFrames; }</tframeid>
Shinya Kitaoka 120a6e
Shinya Kitaoka 120a6e
  InbetweenRange getInbetweenRange() const { return m_inbetweenRange; }
Shinya Kitaoka 120a6e
  bool isInInbetweenRange(const TFrameId &fid) const {
Shinya Kitaoka 120a6e
    return m_inbetweenRange.first < fid && fid < m_inbetweenRange.second;
Shinya Kitaoka 120a6e
  }
Shinya Kitaoka 120a6e
Shinya Kitaoka 120a6e
  void selectAll();
Shinya Kitaoka 120a6e
  void invertSelection();
Shinya Kitaoka 120a6e
  void copyFrames();
Shinya Kitaoka 120a6e
  void cutFrames();
Shinya Kitaoka 120a6e
  void pasteFrames();
Shinya Kitaoka 120a6e
  void mergeFrames();
Shinya Kitaoka 120a6e
  void pasteInto();
Shinya Kitaoka 120a6e
  void deleteFrames();
Shinya Kitaoka 120a6e
  void insertEmptyFrames();
Shinya Kitaoka 120a6e
  void addFrames();
Shinya Kitaoka 120a6e
  void reverseFrames();
Shinya Kitaoka 120a6e
  void swingFrames();
Shinya Kitaoka 120a6e
  void stepFrames(int step);
Shinya Kitaoka 120a6e
  void eachFrames(int step);
Shinya Kitaoka 120a6e
  void duplicateFrames();
Shinya Kitaoka 120a6e
  void exposeFrames();
Shinya Kitaoka 120a6e
  void renumberFrames();
Toshihiro Shimizu 890ddd
};
Toshihiro Shimizu 890ddd
Shinya Kitaoka 120a6e
#endif  // TFILMSTRIPSELECTION_H