1 #pragma once 2 3 #ifndef TXSHLEVELCOLUMN_INCLUDED 4 #define TXSHLEVELCOLUMN_INCLUDED 5 6 #include "toonz/txshcolumn.h" 7 8 #undef DVAPI 9 #undef DVVAR 10 #ifdef TOONZLIB_EXPORTS 11 #define DVAPI DV_EXPORT_API 12 #define DVVAR DV_EXPORT_VAR 13 #else 14 #define DVAPI DV_IMPORT_API 15 #define DVVAR DV_IMPORT_VAR 16 #endif 17 18 //============================================================================= 19 // forward declarations 20 class TLevelColumnFx; 21 class TXshCell; 22 23 //============================================================================= 24 //! The TXshLevelColumn class provides a column of levels in xsheet and allows 25 //! its management. 26 /*!Inherits \b TXshCellColumn. 27 \n The class defines column of levels getLevelColumn(), more than \b 28 TXshCellColumn has 29 a pointer to \b TLevelColumnFx getLevelColumnFx() and a \b string to identify 30 icon. 31 The string is an icon identification helpful to level icon management, 32 getIcon() 33 updateIcon(). 34 */ 35 //============================================================================= 36 37 class DVAPI TXshLevelColumn final : public TXshCellColumn { 38 PERSIST_DECLARATION(TXshLevelColumn) 39 TLevelColumnFx *m_fx; 40 std::string m_iconId; 41 42 bool m_iconVisible; 43 44 public: isIconVisible()45 bool isIconVisible() { return m_iconVisible; } setIconVisible(bool visible)46 void setIconVisible(bool visible) { m_iconVisible = visible; } 47 48 /*! 49 Constructs a TXshLevelColumn with default value. 50 */ 51 TXshLevelColumn(); 52 /*! 53 Destroys the TXshLevelColumn object. 54 */ 55 ~TXshLevelColumn(); 56 57 TXshColumn::ColumnType getColumnType() const override; 58 59 /*! 60 Return true if \b cell is empty or level of \b cell isn't a \b 61 TXshZeraryFxLevel. 62 */ 63 bool canSetCell(const TXshCell &cell) const override; 64 65 /*! 66 Return \b TXshLevelColumn. 67 */ getLevelColumn()68 TXshLevelColumn *getLevelColumn() override { return this; } 69 70 /*! 71 Clone column and return a pointer to the new \b TXshColumn cloned. 72 */ 73 TXshColumn *clone() const override; 74 75 void loadData(TIStream &is) override; 76 void saveData(TOStream &os) override; 77 78 /*! 79 Return a pointer to \b TLevelColumnFx \b m_fx. 80 */ 81 TLevelColumnFx *getLevelColumnFx() const; 82 83 /*! 84 Return \b TFx. 85 */ 86 TFx *getFx() const override; 87 88 // Used in TCellData::getNumbers 89 bool setNumbers(int row, int rowCount, const TXshCell cells[]); 90 91 private: 92 // not implemented 93 TXshLevelColumn(const TXshLevelColumn &); 94 TXshLevelColumn &operator=(const TXshLevelColumn &); 95 }; 96 97 #ifdef _WIN32 98 template class DV_EXPORT_API TSmartPointerT<TXshLevelColumn>; 99 #endif 100 101 typedef TSmartPointerT<TXshLevelColumn> TXshLevelColumnP; 102 103 #endif 104