* Copyright 2006-2007, 2023, Haiku. All rights reserved.
* Distributed under the terms of the MIT License.
*
* Authors:
* Stephan Aßmus <superstippi@gmx.de>
* Zardshard
*/
#ifndef PATH_SOURCE_SHAPE_H
#define PATH_SOURCE_SHAPE_H
#include "IconBuild.h"
#include "Shape.h"
class BMessage;
_BEGIN_ICON_NAMESPACE
class PathContainer;
class PropertyObject;
class Style;
class PathSourceShape : public _ICON_NAMESPACE Shape {
public:
enum {
archive_code = 'shps'
};
PathSourceShape(_ICON_NAMESPACE Style* style);
PathSourceShape(const PathSourceShape& other);
virtual ~PathSourceShape();
virtual status_t Unarchive(BMessage* archive);
#ifdef ICON_O_MATIC
virtual status_t Archive(BMessage* into,
bool deep = true) const;
virtual PropertyObject* MakePropertyObject() const;
virtual bool SetToPropertyObject(
const PropertyObject* object);
#else
inline void Notify() {}
#endif
virtual status_t InitCheck() const;
virtual PathSourceShape* Clone() const
{ return new PathSourceShape(*this); }
void SetStyle(_ICON_NAMESPACE Style* style)
{ Shape::SetStyle(style); }
inline _ICON_NAMESPACE Style* Style() const
{ return Shape::Style(); }
void SetMinVisibilityScale(float scale);
float MinVisibilityScale() const
{ return fMinVisibilityScale; }
void SetMaxVisibilityScale(float scale);
float MaxVisibilityScale() const
{ return fMaxVisibilityScale; }
virtual bool Visible(float scale) const;
private:
float fMinVisibilityScale;
float fMaxVisibilityScale;
};
_END_ICON_NAMESPACE
#endif