Shinya Kitaoka 810553
#pragma once
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
#ifndef TCELLKEYFRAMESELECTION_H
Toshihiro Shimizu 890ddd
#define TCELLKEYFRAMESELECTION_H
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
#include "toonzqt/selection.h"
Toshihiro Shimizu 890ddd
#include "cellselection.h"
Toshihiro Shimizu 890ddd
#include "keyframeselection.h"
Toshihiro Shimizu 890ddd
#include "tgeometry.h"
Toshihiro Shimizu 890ddd
#include <set></set>
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
class TXsheetHandle;
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
//=============================================================================
Toshihiro Shimizu 890ddd
// TCellKeyframeSelection
Toshihiro Shimizu 890ddd
//-----------------------------------------------------------------------------
Toshihiro Shimizu 890ddd
Shinya Kitaoka d1f6c4
class TCellKeyframeSelection final : public TSelection {
Shinya Kitaoka 120a6e
  TCellSelection *m_cellSelection;
Shinya Kitaoka 120a6e
  TKeyframeSelection *m_keyframeSelection;
Toshihiro Shimizu 890ddd
Shinya Kitaoka 120a6e
  TXsheetHandle *m_xsheetHandle;
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
public:
Shinya Kitaoka 120a6e
  TCellKeyframeSelection(TCellSelection *cellSelection,
Shinya Kitaoka 120a6e
                         TKeyframeSelection *keyframeSelection);
Shinya Kitaoka 120a6e
  ~TCellKeyframeSelection();
Shinya Kitaoka 120a6e
Shinya Kitaoka 120a6e
  TCellSelection *getCellSelection() { return m_cellSelection; }
Shinya Kitaoka 120a6e
  TKeyframeSelection *getKeyframeSelection() { return m_keyframeSelection; }
Shinya Kitaoka 120a6e
Shinya Kitaoka 120a6e
  void setXsheetHandle(TXsheetHandle *xsheetHandle) {
Shinya Kitaoka 120a6e
    m_xsheetHandle = xsheetHandle;
Shinya Kitaoka 120a6e
  }
Shinya Kitaoka 120a6e
Shinya Kitaoka 473e70
  void enableCommands() override;
Shinya Kitaoka 120a6e
Shinya Kitaoka 473e70
  bool isEmpty() const override;
Shinya Kitaoka 120a6e
Shinya Kitaoka 120a6e
  void copyCellsKeyframes();
Shinya Kitaoka 120a6e
  void pasteCellsKeyframes();
Shinya Kitaoka 120a6e
  void deleteCellsKeyframes();
Shinya Kitaoka 120a6e
  void cutCellsKeyframes();
Shinya Kitaoka 120a6e
Shinya Kitaoka 120a6e
  //! \note: puo' anche essere r0>r1 o c0>c1
Shinya Kitaoka 120a6e
  void selectCellsKeyframes(int r0, int c0, int r1, int c1);
Shinya Kitaoka 120a6e
  void selectCellKeyframe(int row, int col);
Shinya Kitaoka 473e70
  void selectNone() override;
Shinya Kitaoka 120a6e
Shinya Kitaoka 120a6e
  /*
Shinya Kitaoka 120a6e
  void getSelectedCells(int &r0, int &c0, int &r1, int &c1) const;
Shinya Kitaoka 120a6e
  Range getSelectedCells() const;
Shinya Kitaoka 120a6e
Shinya Kitaoka 120a6e
bool isCellSelected(int r , int c) const;
Shinya Kitaoka 120a6e
bool isRowSelected(int row) const;
Shinya Kitaoka 120a6e
bool isColSelected(int col) const;
Shinya Kitaoka 120a6e
Shinya Kitaoka 120a6e
bool areAllColSelectedLocked() const;
Shinya Kitaoka 120a6e
Shinya Kitaoka 120a6e
  //commands
Shinya Kitaoka 120a6e
void reverseCells();
Shinya Kitaoka 120a6e
  void swingCells();
Shinya Kitaoka 120a6e
  void incrementCells();
Shinya Kitaoka 120a6e
void duplicateCells();
Shinya Kitaoka 120a6e
  void randomCells();
Shinya Kitaoka 120a6e
  void stepCells(int count);
Shinya Kitaoka 120a6e
  void eachCells(int count);
Shinya Kitaoka 120a6e
void step2Cells() {stepCells(2);}
Shinya Kitaoka 120a6e
void step3Cells() {stepCells(3);}
Shinya Kitaoka 120a6e
void step4Cells() {stepCells(4);}
Shinya Kitaoka 120a6e
void each2Cells() {eachCells(2);}
Shinya Kitaoka 120a6e
void each3Cells() {eachCells(3);}
Shinya Kitaoka 120a6e
void each4Cells() {eachCells(4);}
Shinya Kitaoka 120a6e
  void rollupCells();
Shinya Kitaoka 120a6e
  void rolldownCells();
Shinya Kitaoka 120a6e
Shinya Kitaoka 120a6e
  void setKeyframes();
Shinya Kitaoka 120a6e
  void cloneLevel();
Shinya Kitaoka 120a6e
void insertCells();
Shinya Kitaoka 120a6e
Shinya Kitaoka 120a6e
void openTimeStretchPopup();*/
Toshihiro Shimizu 890ddd
};
Toshihiro Shimizu 890ddd
Shinya Kitaoka 120a6e
#endif  // TCELLKEYFRAMESELECTION_H