10e1ba39fSStephan Aßmus /* 2325a6253SAxel Dörfler * Copyright 2006-2007, Haiku. 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_GRADIENT_BOX_H 90e1ba39fSStephan Aßmus #define TRANSFORM_GRADIENT_BOX_H 100e1ba39fSStephan Aßmus 1125dc253dSIngo Weinhold #include "IconBuild.h" 120e1ba39fSStephan Aßmus #include "TransformBox.h" 130e1ba39fSStephan Aßmus 14*2263aa8fSZardshard #include <Referenceable.h> 15*2263aa8fSZardshard 16325a6253SAxel Dörfler 170e1ba39fSStephan Aßmus class CanvasView; 18325a6253SAxel Dörfler 1925dc253dSIngo Weinhold _BEGIN_ICON_NAMESPACE 200e1ba39fSStephan Aßmus class Gradient; 210e1ba39fSStephan Aßmus class Shape; 2225dc253dSIngo Weinhold _END_ICON_NAMESPACE 2325dc253dSIngo Weinhold 2425dc253dSIngo Weinhold _USING_ICON_NAMESPACE 2525dc253dSIngo Weinhold 260e1ba39fSStephan Aßmus 270e1ba39fSStephan Aßmus class TransformGradientBox : public TransformBox { 280e1ba39fSStephan Aßmus public: 290e1ba39fSStephan Aßmus TransformGradientBox(CanvasView* view, 300e1ba39fSStephan Aßmus Gradient* gradient, 310e1ba39fSStephan Aßmus Shape* parent); 320e1ba39fSStephan Aßmus virtual ~TransformGradientBox(); 330e1ba39fSStephan Aßmus 340e1ba39fSStephan Aßmus // Observer interface (Manipulator is an Observer) 350e1ba39fSStephan Aßmus virtual void ObjectChanged(const Observable* object); 360e1ba39fSStephan Aßmus 370e1ba39fSStephan Aßmus // TransformBox interface 380e1ba39fSStephan Aßmus virtual void Update(bool deep = true); 390e1ba39fSStephan Aßmus 400e1ba39fSStephan Aßmus virtual void TransformFromCanvas(BPoint& point) const; 410e1ba39fSStephan Aßmus virtual void TransformToCanvas(BPoint& point) const; 420e1ba39fSStephan Aßmus virtual float ZoomLevel() const; 430e1ba39fSStephan Aßmus virtual double ViewSpaceRotation() const; 440e1ba39fSStephan Aßmus 450e1ba39fSStephan Aßmus virtual TransformCommand* MakeCommand(const char* actionName, 460e1ba39fSStephan Aßmus uint32 nameIndex); 470e1ba39fSStephan Aßmus 480e1ba39fSStephan Aßmus // TransformGradientBox 490e1ba39fSStephan Aßmus Command* Perform(); 500e1ba39fSStephan Aßmus Command* Cancel(); 510e1ba39fSStephan Aßmus private: 520e1ba39fSStephan Aßmus CanvasView* fCanvasView; 530e1ba39fSStephan Aßmus 540e1ba39fSStephan Aßmus Shape* fShape; 55*2263aa8fSZardshard BReference<Gradient> fGradient; 560e1ba39fSStephan Aßmus int32 fCount; 570e1ba39fSStephan Aßmus 580e1ba39fSStephan Aßmus // saves the transformable object transformation states 590e1ba39fSStephan Aßmus // prior to this transformation 600e1ba39fSStephan Aßmus double fOriginals[matrix_size]; 610e1ba39fSStephan Aßmus }; 620e1ba39fSStephan Aßmus 630e1ba39fSStephan Aßmus #endif // TRANSFORM_GRADIENT_BOX_H 640e1ba39fSStephan Aßmus 65