1 // Aseprite
2 // Copyright (C) 2001-2016  David Capello
3 //
4 // This program is distributed under the terms of
5 // the End-User License Agreement for Aseprite.
6 
7 #ifndef APP_CMD_ADD_PALETTE_H_INCLUDED
8 #define APP_CMD_ADD_PALETTE_H_INCLUDED
9 #pragma once
10 
11 #include "app/cmd.h"
12 #include "app/cmd/with_sprite.h"
13 #include "doc/frame.h"
14 
15 #include <sstream>
16 
17 namespace doc {
18   class Palette;
19   class Sprite;
20 }
21 
22 namespace app {
23 namespace cmd {
24   using namespace doc;
25 
26   class AddPalette : public Cmd
27                    , public WithSprite {
28   public:
29     AddPalette(Sprite* sprite, Palette* pal);
30 
31   protected:
32     void onExecute() override;
33     void onUndo() override;
onMemSize()34     size_t onMemSize() const override {
35       return sizeof(*this) + m_size;
36     }
37 
38   private:
39     size_t m_size;
40     std::stringstream m_stream;
41     frame_t m_frame;
42   };
43 
44 } // namespace cmd
45 } // namespace app
46 
47 #endif  // CMD_ADD_PALETTE_H_INCLUDED
48