/* QSoloCards is a collection of Solitaire card games written using Qt Copyright (C) 2009 Steve Moore This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #ifndef CARDMOVERECORD_H #define CARDMOVERECORD_H #include "CardDeck.h" #include #include class CardMoveRecordItem { public: enum MoveType { AddCards=0, RemoveCards=1, FlipCard=2 }; CardMoveRecordItem(const std::string & stackName, int flipIndex=-1); // Case where we are just flipping a card CardMoveRecordItem(const std::string & stackName, MoveType m_type, const PlayingCardVector & cardVector); // case where we are adding or removing cards CardMoveRecordItem(const CardMoveRecordItem & rh); virtual ~CardMoveRecordItem(); CardMoveRecordItem & operator=(const CardMoveRecordItem & rh); inline MoveType moveType() const {return m_moveType;} inline const PlayingCardVector & cardVector() const {return m_cardVector;} inline int flipIndex() const {return m_flipIndex;} inline const std::string & stackName() const{return m_stackName;} private: MoveType m_moveType; PlayingCardVector m_cardVector; int m_flipIndex; std::string m_stackName; }; typedef std::list CardMoveRecord; #endif // CARDMOVERECORD_H