/* * Copyright (c) 2015 Tricoire Sebastien 3dsman@free.fr * * This software is provided 'as-is', without any express or implied * warranty. In no event will the authors be held liable for any damages * arising from the use of this software. * * Permission is granted to anyone to use this software for any purpose, * including commercial applications, and to alter it and redistribute it * freely, subject to the following restrictions: * * 1. The origin of this software must not be misrepresented; you must not * claim that you wrote the original software. If you use this software * in a product, an acknowledgment in the product documentation would be * appreciated but is not required. * 2. Altered source versions must be plainly marked as such, and must not be * misrepresented as being the original software. * 3. This notice may not be removed or altered from any source distribution. * */ #include "actions/OE_actions.h" #include "OE_document.h" #include "curves/OE_curve.h" #include "stitchs/OE_stitchs.h" OE_actions::OE_actions(OE_document* doc) : active(true), document(doc) { } OE_actions::~OE_actions() { } float OE_actions::switchVal(float Original, float* storage) { float tmp = *storage; *storage = Original; return tmp; } OE_curve* OE_actions::switchVal(OE_pointcurve* Original, OE_pointcurve** storage) { OE_pointcurve* tmp = *storage; *storage = Original; return tmp; } std::list OE_actions::switchVal(std::list Original, std::list* storage) { std::list tmp = *storage; *storage = Original; return tmp; } OE_stitchs* OE_actions::switchVal(OE_stitchs* Original, OE_stitchs** storage) { OE_stitchs* tmp = *storage; *storage = Original; return tmp; } std::list OE_actions::switchVal(std::list Original, std::list* storage) { std::list tmp = *storage; *storage = Original; return tmp; } unsigned OE_actions::switchVal(unsigned Original, unsigned* storage) { unsigned tmp = *storage; *storage = Original; return tmp; } bool OE_actions::switchVal(bool Original, bool* storage) { bool tmp = *storage; *storage = Original; return tmp; } OE_actionsMeta::OE_actionsMeta(OE_document* doc) : OE_actions(doc) { } OE_actionsMeta::~OE_actionsMeta() { if (document) { std::list::iterator action = actions.begin(); while (action != actions.end()) { delete *action; } actions.clear(); } } void OE_actionsMeta::undo() { if (document) { std::list::iterator action = actions.begin(); while (action != actions.end()) { (*action)->undo(); action++; } } } void OE_actionsMeta::redo() { if (document) { std::list::iterator action = actions.begin(); while (action != actions.end()) { (*action)->redo(); action++; } } }