xref: /haiku/src/apps/icon-o-matic/gui/TransformerListView.h (revision 0e1ba39f0440e200e30b6a648e70c3e8683dc5f7)
1bab183a2SStephan Aßmus /*
2bab183a2SStephan Aßmus  * Copyright 2006, Haiku.
3bab183a2SStephan Aßmus  * Distributed under the terms of the MIT License.
4bab183a2SStephan Aßmus  *
5bab183a2SStephan Aßmus  * Authors:
6bab183a2SStephan Aßmus  *		Stephan Aßmus <superstippi@gmx.de>
7bab183a2SStephan Aßmus  */
8bab183a2SStephan Aßmus 
9bab183a2SStephan Aßmus #ifndef TRANSFORMER_LIST_VIEW_H
10bab183a2SStephan Aßmus #define TRANSFORMER_LIST_VIEW_H
11bab183a2SStephan Aßmus 
12bab183a2SStephan Aßmus #include "ListViews.h"
13bab183a2SStephan Aßmus #include "Shape.h"
14bab183a2SStephan Aßmus 
15bab183a2SStephan Aßmus class CommandStack;
16bab183a2SStephan Aßmus class Transformer;
17bab183a2SStephan Aßmus class TransformerItem;
18bab183a2SStephan Aßmus class Selection;
19bab183a2SStephan Aßmus 
20bab183a2SStephan Aßmus class TransformerListView : public SimpleListView,
21bab183a2SStephan Aßmus 							public ShapeListener {
22bab183a2SStephan Aßmus  public:
23bab183a2SStephan Aßmus 								TransformerListView(BRect frame,
24bab183a2SStephan Aßmus 											  const char* name,
25bab183a2SStephan Aßmus 											  BMessage* selectionMessage = NULL,
26bab183a2SStephan Aßmus 											  BHandler* target = NULL);
27bab183a2SStephan Aßmus 	virtual						~TransformerListView();
28bab183a2SStephan Aßmus 
29bab183a2SStephan Aßmus 	// SimpleListView interface
30bab183a2SStephan Aßmus 	virtual	void				SelectionChanged();
31bab183a2SStephan Aßmus 
32bab183a2SStephan Aßmus 	virtual	void				MakeDragMessage(BMessage* message) const;
33bab183a2SStephan Aßmus 
34bab183a2SStephan Aßmus 	virtual	void				MoveItems(BList& items, int32 toIndex);
35bab183a2SStephan Aßmus 	virtual	void				CopyItems(BList& items, int32 toIndex);
3661b0e9e3SStephan Aßmus 	virtual	void				RemoveItemList(BList& items);
37bab183a2SStephan Aßmus 
38bab183a2SStephan Aßmus 	virtual	BListItem*			CloneItem(int32 atIndex) const;
39bab183a2SStephan Aßmus 
40*0e1ba39fSStephan Aßmus 	virtual	int32				IndexOfSelectable(Selectable* selectable) const;
41*0e1ba39fSStephan Aßmus 	virtual	Selectable*			SelectableFor(BListItem* item) const;
42*0e1ba39fSStephan Aßmus 
43bab183a2SStephan Aßmus 	// ShapeListener interface
44bab183a2SStephan Aßmus 	virtual	void				TransformerAdded(Transformer* transformer,
45bab183a2SStephan Aßmus 												 int32 index);
46bab183a2SStephan Aßmus 	virtual	void				TransformerRemoved(Transformer* transformer);
47bab183a2SStephan Aßmus 
484215c452SStephan Aßmus 	virtual	void				StyleChanged(Style* oldStyle, Style* newStyle);
494215c452SStephan Aßmus 
50bab183a2SStephan Aßmus 	// TransformerListView
51bab183a2SStephan Aßmus 			void				SetShape(Shape* shape);
52bab183a2SStephan Aßmus 			void				SetCommandStack(CommandStack* stack);
53bab183a2SStephan Aßmus 
54bab183a2SStephan Aßmus  private:
554215c452SStephan Aßmus 			bool				_AddTransformer(
564215c452SStephan Aßmus 									Transformer* transformer, int32 index);
574215c452SStephan Aßmus 			bool				_RemoveTransformer(
584215c452SStephan Aßmus 									Transformer* transformer);
59bab183a2SStephan Aßmus 
604215c452SStephan Aßmus 			TransformerItem*	_ItemForTransformer(
614215c452SStephan Aßmus 									Transformer* transformer) const;
62bab183a2SStephan Aßmus 
63bab183a2SStephan Aßmus 			BMessage*			fMessage;
64bab183a2SStephan Aßmus 
65bab183a2SStephan Aßmus 			Shape*				fShape;
66bab183a2SStephan Aßmus 			CommandStack*		fCommandStack;
67bab183a2SStephan Aßmus };
68bab183a2SStephan Aßmus 
69bab183a2SStephan Aßmus #endif // TRANSFORMER_LIST_VIEW_H
70