2 * Copyright 2006-2007, Haiku.
3 * Distributed under the terms of the MIT License.
6 * Stephan Aßmus <superstippi@gmx.de>
8 #ifndef TRANSFORMER_LIST_VIEW_H
9 #define TRANSFORMER_LIST_VIEW_H
12 #include "ListViews.h"
18 class TransformerItem
;
26 class TransformerListView
: public SimpleListView
,
27 public ShapeListener
{
29 TransformerListView(BRect frame
,
31 BMessage
* selectionMessage
= NULL
,
32 BHandler
* target
= NULL
);
33 virtual ~TransformerListView();
35 // SimpleListView interface
36 virtual void Draw(BRect updateRect
);
38 virtual void SelectionChanged();
40 virtual void MessageReceived(BMessage
* message
);
42 virtual void MakeDragMessage(BMessage
* message
) const;
44 virtual void MoveItems(BList
& items
, int32 toIndex
);
45 virtual void CopyItems(BList
& items
, int32 toIndex
);
46 virtual void RemoveItemList(BList
& items
);
48 virtual BListItem
* CloneItem(int32 atIndex
) const;
50 virtual int32
IndexOfSelectable(Selectable
* selectable
) const;
51 virtual Selectable
* SelectableFor(BListItem
* item
) const;
53 // ShapeListener interface
54 virtual void TransformerAdded(Transformer
* transformer
,
56 virtual void TransformerRemoved(Transformer
* transformer
);
58 virtual void StyleChanged(Style
* oldStyle
, Style
* newStyle
);
60 // TransformerListView
61 void SetMenu(BMenu
* menu
);
62 void SetShape(Shape
* shape
);
63 void SetCommandStack(CommandStack
* stack
);
67 Transformer
* transformer
, int32 index
);
68 bool _RemoveTransformer(
69 Transformer
* transformer
);
71 TransformerItem
* _ItemForTransformer(
72 Transformer
* transformer
) const;
79 CommandStack
* fCommandStack
;
84 #endif // TRANSFORMER_LIST_VIEW_H