xref: /haiku/src/apps/icon-o-matic/transformable/TransformPointsBox.h (revision a75a222b35d17cd83bc75253f3cd8e24a6a911f4)
10e1ba39fSStephan Aßmus /*
2325a6253SAxel Dörfler  * Copyright 2006-2007, Haiku. All rights reserved.
30e1ba39fSStephan Aßmus  * Distributed under the terms of the MIT License.
40e1ba39fSStephan Aßmus  *
50e1ba39fSStephan Aßmus  * Authors:
60e1ba39fSStephan Aßmus  *		Stephan Aßmus <superstippi@gmx.de>
70e1ba39fSStephan Aßmus  */
80e1ba39fSStephan Aßmus #ifndef TRANSFORM_POINTS_BOX_H
90e1ba39fSStephan Aßmus #define TRANSFORM_POINTS_BOX_H
100e1ba39fSStephan Aßmus 
11325a6253SAxel Dörfler 
120e1ba39fSStephan Aßmus #include "CanvasTransformBox.h"
1325dc253dSIngo Weinhold #include "IconBuild.h"
140e1ba39fSStephan Aßmus 
15325a6253SAxel Dörfler 
160e1ba39fSStephan Aßmus class CanvasView;
170e1ba39fSStephan Aßmus class PathManipulator;
180e1ba39fSStephan Aßmus 
1925dc253dSIngo Weinhold _BEGIN_ICON_NAMESPACE
20325a6253SAxel Dörfler 	class VectorPath;
210e1ba39fSStephan Aßmus 	struct control_point;
2225dc253dSIngo Weinhold _END_ICON_NAMESPACE
2325dc253dSIngo Weinhold 
2425dc253dSIngo Weinhold _USING_ICON_NAMESPACE
2525dc253dSIngo Weinhold 
260e1ba39fSStephan Aßmus 
270e1ba39fSStephan Aßmus class TransformPointsBox : public CanvasTransformBox {
280e1ba39fSStephan Aßmus  public:
290e1ba39fSStephan Aßmus 								TransformPointsBox(
300e1ba39fSStephan Aßmus 									CanvasView* view,
310e1ba39fSStephan Aßmus 									PathManipulator* manipulator,
320e1ba39fSStephan Aßmus 									VectorPath* path,
330e1ba39fSStephan Aßmus 									const int32* indices,
340e1ba39fSStephan Aßmus 									int32 count);
350e1ba39fSStephan Aßmus 	virtual						~TransformPointsBox();
360e1ba39fSStephan Aßmus 
370e1ba39fSStephan Aßmus 	// Observer interface (Manipulator is an Observer)
380e1ba39fSStephan Aßmus 	virtual	void				ObjectChanged(const Observable* object);
390e1ba39fSStephan Aßmus 
400e1ba39fSStephan Aßmus 	// TransformBox interface
410e1ba39fSStephan Aßmus 	virtual	void				Update(bool deep = true);
420e1ba39fSStephan Aßmus 
43*a75a222bSZardshard 	virtual	TransformCommand*	MakeCommand(const char* commandName);
440e1ba39fSStephan Aßmus 
450e1ba39fSStephan Aßmus 	// TransformPointsBox
460e1ba39fSStephan Aßmus 			void				Cancel();
470e1ba39fSStephan Aßmus 
480e1ba39fSStephan Aßmus  private:
490e1ba39fSStephan Aßmus 			PathManipulator*	fManipulator;
500e1ba39fSStephan Aßmus 			VectorPath*			fPath;
510e1ba39fSStephan Aßmus 
520e1ba39fSStephan Aßmus 			int32*				fIndices;
530e1ba39fSStephan Aßmus 			int32				fCount;
540e1ba39fSStephan Aßmus 
550e1ba39fSStephan Aßmus 			control_point*		fPoints;
560e1ba39fSStephan Aßmus };
570e1ba39fSStephan Aßmus 
580e1ba39fSStephan Aßmus #endif // TRANSFORM_POINTS_BOX_H
590e1ba39fSStephan Aßmus 
60