2 * Copyright 2007, Haiku. All rights reserved.
3 * Distributed under the terms of the MIT License.
6 * Stephan Aßmus <superstippi@gmx.de>
12 #include "IconBuild.h"
13 #include "ShapeContainer.h"
17 # include <Referenceable.h>
19 # include "Observer.h"
21 # include <SupportDefs.h>
37 virtual ~IconListener();
39 virtual void AreaInvalidated(const BRect
& area
) = 0;
44 class Icon
: public ShapeContainerListener
,
46 public BReferenceable
{
53 Icon(const Icon
& other
);
56 status_t
InitCheck() const;
58 StyleContainer
* Styles() const
60 PathContainer
* Paths() const
62 ShapeContainer
* Shapes() const
70 StyleContainer
* fStyles
;
71 PathContainer
* fPaths
;
72 ShapeContainer
* fShapes
;
76 // ShapeContainerListener interface
77 virtual void ShapeAdded(Shape
* shape
, int32 index
);
78 virtual void ShapeRemoved(Shape
* shape
);
81 virtual void ObjectChanged(const Observable
* object
);
84 bool AddListener(IconListener
* listener
);
85 bool RemoveListener(IconListener
* listener
);
88 void _NotifyAreaInvalidated(
89 const BRect
& area
) const;