xref: /haiku/src/apps/haikudepot/ui/PackageListView.h (revision ca747629f9a7bbb3382604ac01085153211873d6)
104c9d578SStephan Aßmus /*
204c9d578SStephan Aßmus  * Copyright 2013, Stephan Aßmus <superstippi@gmx.de>.
304c9d578SStephan Aßmus  * Copyright 2013, Rene Gollent <rene@gollent.com>.
404c9d578SStephan Aßmus  * All rights reserved. Distributed under the terms of the MIT License.
504c9d578SStephan Aßmus  */
604c9d578SStephan Aßmus #ifndef PACKAGE_LIST_VIEW_H
704c9d578SStephan Aßmus #define PACKAGE_LIST_VIEW_H
804c9d578SStephan Aßmus 
904c9d578SStephan Aßmus 
1004c9d578SStephan Aßmus #include <ColumnListView.h>
1104c9d578SStephan Aßmus #include <ColumnTypes.h>
1204c9d578SStephan Aßmus #include <Locker.h>
1304c9d578SStephan Aßmus 
1404c9d578SStephan Aßmus #include "PackageInfo.h"
1504c9d578SStephan Aßmus 
1604c9d578SStephan Aßmus 
1704c9d578SStephan Aßmus class PackageRow;
1804c9d578SStephan Aßmus class PackageListener;
1904c9d578SStephan Aßmus 
2004c9d578SStephan Aßmus class PackageListView : public BColumnListView {
2104c9d578SStephan Aßmus public:
2204c9d578SStephan Aßmus 								PackageListView(BLocker* modelLock);
2304c9d578SStephan Aßmus 	virtual						~PackageListView();
2404c9d578SStephan Aßmus 
2504c9d578SStephan Aßmus 	virtual void				AttachedToWindow();
2604c9d578SStephan Aßmus 	virtual	void				AllAttached();
2704c9d578SStephan Aßmus 
2804c9d578SStephan Aßmus 	virtual	void				MessageReceived(BMessage* message);
2904c9d578SStephan Aßmus 
3004c9d578SStephan Aßmus 	virtual void				SelectionChanged();
3104c9d578SStephan Aßmus 
32*ca747629SStephan Aßmus 	virtual void				Clear();
3304c9d578SStephan Aßmus 			void				AddPackage(const PackageInfoRef& package);
3404c9d578SStephan Aßmus 
3504c9d578SStephan Aßmus private:
3604c9d578SStephan Aßmus 			PackageRow*			_FindRow(const PackageInfoRef& package,
3704c9d578SStephan Aßmus 									PackageRow* parent = NULL);
3804c9d578SStephan Aßmus 			PackageRow*			_FindRow(const BString& packageTitle,
3904c9d578SStephan Aßmus 									PackageRow* parent = NULL);
4004c9d578SStephan Aßmus 
4104c9d578SStephan Aßmus private:
4204c9d578SStephan Aßmus 			class ItemCountView;
4304c9d578SStephan Aßmus 
4404c9d578SStephan Aßmus 			BLocker*			fModelLock;
4504c9d578SStephan Aßmus 			ItemCountView*		fItemCountView;
4604c9d578SStephan Aßmus 			PackageListener*	fPackageListener;
4704c9d578SStephan Aßmus };
4804c9d578SStephan Aßmus 
4904c9d578SStephan Aßmus #endif // PACKAGE_LIST_VIEW_H
50