/* * Copyright 2009, Ingo Weinhold, ingo_weinhold@gmx.de. * Distributed under the terms of the MIT License. */ #ifndef IMAGE_LIST_VIEW_H #define IMAGE_LIST_VIEW_H #include #include "table/Table.h" #include "Team.h" class ImageListView : public BGroupView, private Team::Listener, private TableListener { public: class Listener; public: ImageListView(Team* team, Listener* listener); ~ImageListView(); static ImageListView* Create(Team* team, Listener* listener); // throws void UnsetListener(); void SetImage(Image* image); virtual void MessageReceived(BMessage* message); void LoadSettings(const BMessage& settings); status_t SaveSettings(BMessage& settings); private: class ImagesTableModel; private: // Team::Listener virtual void ImageAdded(const Team::ImageEvent& event); virtual void ImageRemoved(const Team::ImageEvent& event); // TableListener virtual void TableSelectionChanged(Table* table); void _Init(); private: Team* fTeam; Image* fImage; Table* fImagesTable; ImagesTableModel* fImagesTableModel; Listener* fListener; }; class ImageListView::Listener { public: virtual ~Listener(); virtual void ImageSelectionChanged(Image* image) = 0; }; #endif // IMAGE_LIST_VIEW_H