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