1 #pragma once
2 
3 #ifndef TXSHPALETTECOLUMN_INCLUDED
4 #define TXSHPALETTECOLUMN_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 TPaletteColumnFx;
21 
22 //=============================================================================
23 //! The TXshPaletteColumn class represent a column in xsheet containing
24 //! TXshPaletteLevel
25 /*!Inherits \b TXshColumn.
26 \n
27 */
28 //=============================================================================
29 
30 class DVAPI TXshPaletteColumn final : public TXshCellColumn {
31   PERSIST_DECLARATION(TXshPaletteColumn)
32   TPaletteColumnFx *m_fx;
33 
34 public:
35   TXshPaletteColumn();
36   ~TXshPaletteColumn();
37 
38   TXshColumn::ColumnType getColumnType() const override;
39 
getPaletteColumn()40   TXshPaletteColumn *getPaletteColumn() override { return this; }
41 
42   TXshColumn *clone() const override;
43 
getPaletteColumnFx()44   TPaletteColumnFx *getPaletteColumnFx() const { return m_fx; }
45   TFx *getFx() const override;
46   void setFx(TFx *fx);
47 
48   bool canSetCell(const TXshCell &cell) const override;
49 
50   void loadData(TIStream &is) override;
51   void saveData(TOStream &is) override;
52 
53 private:
54   // not implemented
55   TXshPaletteColumn(const TXshPaletteColumn &);
56   TXshPaletteColumn &operator=(const TXshPaletteColumn &);
57 };
58 
59 #ifdef _WIN32
60 template class TSmartPointerT<TXshPaletteColumn>;
61 #endif
62 
63 typedef TSmartPointerT<TXshPaletteColumn> TXshPaletteColumnP;
64 
65 #endif
66