BTRFS: Implement BTree::Path and change _Find.
[haiku.git] / src / apps / icon-o-matic / gui / TransformerListView.h
blobb08171718d92126ff0530b518483fc49cc64944b
1 /*
2 * Copyright 2006-2007, Haiku.
3 * Distributed under the terms of the MIT License.
5 * Authors:
6 * Stephan Aßmus <superstippi@gmx.de>
7 */
8 #ifndef TRANSFORMER_LIST_VIEW_H
9 #define TRANSFORMER_LIST_VIEW_H
12 #include "ListViews.h"
13 #include "Shape.h"
16 class BMenu;
17 class CommandStack;
18 class TransformerItem;
19 class Selection;
21 _BEGIN_ICON_NAMESPACE
22 class Transformer;
23 _END_ICON_NAMESPACE
26 class TransformerListView : public SimpleListView,
27 public ShapeListener {
28 public:
29 TransformerListView(BRect frame,
30 const char* name,
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,
55 int32 index);
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);
65 private:
66 bool _AddTransformer(
67 Transformer* transformer, int32 index);
68 bool _RemoveTransformer(
69 Transformer* transformer);
71 TransformerItem* _ItemForTransformer(
72 Transformer* transformer) const;
74 void _UpdateMenu();
76 BMessage* fMessage;
78 Shape* fShape;
79 CommandStack* fCommandStack;
81 BMenu* fMenu;
84 #endif // TRANSFORMER_LIST_VIEW_H