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