1/*
2 * Copyright 2006-2007, Haiku. All rights reserved.
3 * Distributed under the terms of the MIT License.
4 *
5 * Authors:
6 *		Stephan A��mus <superstippi@gmx.de>
7 */
8#ifndef TRANSFORM_POINTS_BOX_H
9#define TRANSFORM_POINTS_BOX_H
10
11
12#include "CanvasTransformBox.h"
13#include "IconBuild.h"
14
15
16class CanvasView;
17class PathManipulator;
18
19_BEGIN_ICON_NAMESPACE
20	class VectorPath;
21	struct control_point;
22_END_ICON_NAMESPACE
23
24_USING_ICON_NAMESPACE
25
26
27class TransformPointsBox : public CanvasTransformBox {
28 public:
29								TransformPointsBox(
30									CanvasView* view,
31									PathManipulator* manipulator,
32									VectorPath* path,
33									const int32* indices,
34									int32 count);
35	virtual						~TransformPointsBox();
36
37	// Observer interface (Manipulator is an Observer)
38	virtual	void				ObjectChanged(const Observable* object);
39
40	// TransformBox interface
41	virtual	void				Update(bool deep = true);
42
43	virtual	TransformCommand*	MakeCommand(const char* commandName);
44
45	// TransformPointsBox
46			void				Cancel();
47
48 private:
49			PathManipulator*	fManipulator;
50			VectorPath*			fPath;
51
52			int32*				fIndices;
53			int32				fCount;
54
55			control_point*		fPoints;
56};
57
58#endif // TRANSFORM_POINTS_BOX_H
59
60