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); 36bab183a2SStephan Aßmus virtual void RemoveItemList(BList& indices); 37bab183a2SStephan Aßmus 38bab183a2SStephan Aßmus virtual BListItem* CloneItem(int32 atIndex) const; 39bab183a2SStephan Aßmus 40bab183a2SStephan Aßmus // ShapeListener interface 41bab183a2SStephan Aßmus virtual void TransformerAdded(Transformer* transformer, 42bab183a2SStephan Aßmus int32 index); 43bab183a2SStephan Aßmus virtual void TransformerRemoved(Transformer* transformer); 44bab183a2SStephan Aßmus 45*4215c452SStephan Aßmus virtual void StyleChanged(Style* oldStyle, Style* newStyle); 46*4215c452SStephan Aßmus 47bab183a2SStephan Aßmus // TransformerListView 48bab183a2SStephan Aßmus void SetShape(Shape* shape); 49bab183a2SStephan Aßmus void SetSelection(Selection* selection); 50bab183a2SStephan Aßmus void SetCommandStack(CommandStack* stack); 51bab183a2SStephan Aßmus 52bab183a2SStephan Aßmus private: 53*4215c452SStephan Aßmus bool _AddTransformer( 54*4215c452SStephan Aßmus Transformer* transformer, int32 index); 55*4215c452SStephan Aßmus bool _RemoveTransformer( 56*4215c452SStephan Aßmus Transformer* transformer); 57bab183a2SStephan Aßmus 58*4215c452SStephan Aßmus TransformerItem* _ItemForTransformer( 59*4215c452SStephan Aßmus Transformer* transformer) const; 60bab183a2SStephan Aßmus 61bab183a2SStephan Aßmus BMessage* fMessage; 62bab183a2SStephan Aßmus 63bab183a2SStephan Aßmus Shape* fShape; 64bab183a2SStephan Aßmus Selection* fSelection; 65bab183a2SStephan Aßmus CommandStack* fCommandStack; 66bab183a2SStephan Aßmus }; 67bab183a2SStephan Aßmus 68bab183a2SStephan Aßmus #endif // TRANSFORMER_LIST_VIEW_H 69