1 // Aseprite 2 // Copyright (C) 2001-2015 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_FLIP_IMAGE_H_INCLUDED 8 #define APP_CMD_FLIP_IMAGE_H_INCLUDED 9 #pragma once 10 11 #include "app/cmd.h" 12 #include "app/cmd/with_image.h" 13 #include "doc/algorithm/flip_type.h" 14 #include "gfx/rect.h" 15 16 #include <vector> 17 18 namespace doc { 19 class Image; 20 } 21 22 namespace app { 23 namespace cmd { 24 using namespace doc; 25 26 class FlipImage : public Cmd 27 , public WithImage { 28 public: 29 FlipImage(Image* image, const gfx::Rect& bounds, 30 doc::algorithm::FlipType flipType); 31 32 protected: 33 void onExecute() override; 34 void onUndo() override; onMemSize()35 size_t onMemSize() const override { 36 return sizeof(*this); 37 } 38 39 private: 40 void swap(); 41 42 gfx::Rect m_bounds; 43 doc::algorithm::FlipType m_flipType; 44 }; 45 46 } // namespace cmd 47 } // namespace app 48 49 #endif 50