/* This file is part of KsirK.
   Copyright (C) 2007 Gael de Chalendar <kleag@free.fr>

   KsirK 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 2
   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, write to the Free Software
   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
   02110-1301, USA
*/

/*  begin                : Thu Feb 22 2007  */

#ifndef ANIMSPRITESGROUP_H
#define ANIMSPRITESGROUP_H

#include "animsprite.h"
#include "animspriteslist.h"

#include <QObject>

namespace Ksirk
{

class AnimSpritesGroup : public QObject, public AnimSpritesList<AnimSprite>
{
  Q_OBJECT
public:
  AnimSpritesGroup(QObject* target, const char* slot, QObject* parent = nullptr);

  ~AnimSpritesGroup() override;

  void addSprite(AnimSprite* sprite);

  void changeTarget(QObject* target, const char* slot);

  void clear();

public Q_SLOTS:
  void oneArrived(AnimSprite* sprite);

Q_SIGNALS:
  void arrived(AnimSpritesGroup*);

private:
  unsigned int m_numberArrived;
  QObject* m_target;
  const char* m_slot;
};


} // closing namespace Ksirk

#endif // ANIMSPRITESGROUP_H

