//================================================================
// lib2D
//
// - Undo/redo
//
// AUTHOR:  Gabor Nagy
// DATE:    2014-Feb-26 23:21:16
//
// Copyright (C) 1996-2026 by Gabor Nagy. All rights reserved.
//================================================================
#ifndef _EpUndo_h
#define _EpUndo_h

#ifndef _EUndo_h
#include <EUndo.h>
#endif



#if defined (__cplusplus) && (!(defined (__CPLUSLIBS)))
extern "C" {
#endif




//================================================================
// Generic Image content change Operator record
// This operator simply caches the "before" and "after" images.
//================================================================
typedef struct
{
	EOperatorCore;

// EpOperatorImageContent part
//
	uint32_t    Flags;
	EpPicture*  Picture;
	EpImage     Old, New;
} EpOperatorImageContent;



typedef struct
{
	EOperatorCore;

// EpOperatorImageSize part
//
	uint32_t    Flags;
	EpPicture*  Picture;
	EpCoord2    OldPosition;
	EpCoord2    OldSize;
	EpCoord2    NewPosition;
	EpCoord2    NewSize;
} EpOperatorImageSize;


extern EOperatorClass*  EpImage_ContentOperatorClass;
extern EOperatorClass   EpImage_ContentOperatorClassDesc[];


#if defined (__cplusplus) && (!(defined (__CPLUSLIBS)))
}	// Close scope of 'extern "C"' declaration
#endif

#endif	// _EpUndo_h
