1
// $Id: multiple_pointer.hxx,v 1.3 2002/09/27 11:26:48 torangan Exp $
3
// Pingus - A free Lemmings clone
4
// Copyright (C) 2000 Ingo Ruhnke <grumbel@gmx.de>
6
// This program is free software; you can redistribute it and/or
7
// modify it under the terms of the GNU General Public License
8
// as published by the Free Software Foundation; either version 2
9
// of the License, or (at your option) any later version.
11
// This program is distributed in the hope that it will be useful,
12
// but WITHOUT ANY WARRANTY; without even the implied warranty of
13
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
// GNU General Public License for more details.
16
// You should have received a copy of the GNU General Public License
17
// along with this program; if not, write to the Free Software
18
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
20
#ifndef HEADER_PINGUS_INPUT_MULTIPLE_POINTER_HXX
21
#define HEADER_PINGUS_INPUT_MULTIPLE_POINTER_HXX
24
#include "../pointer.hxx"
31
@brief wrapper class allowing multiple pointers to be used as one
33
XML definition: <multiple-pointer> <pointer 1>...<pointer N> </multiple-pointer>
35
This class will check every contained pointer for changes and if any changes all
36
pointers are updated to the new coordinates. If more than one pointer changes at
37
the same time only the change of the first will be registered.
39
class MultiplePointer : public Pointer {
42
std::vector<Pointer*> pointers;
51
MultiplePointer (const std::vector<Pointer*>& pointers_);
54
virtual const float& get_x_pos () const;
55
virtual const float& get_y_pos () const;
57
virtual void set_pos (float x_pos, float y_pos);
59
virtual void update (float delta);
62
MultiplePointer (const MultiplePointer&);
63
MultiplePointer& operator= (const MultiplePointer&);