1/* 2 * Copyright 2009, Ingo Weinhold, ingo_weinhold@gmx.de. 3 * Distributed under the terms of the MIT License. 4 */ 5#ifndef IMAGE_LIST_VIEW_H 6#define IMAGE_LIST_VIEW_H 7 8#include <GroupView.h> 9 10#include "table/Table.h" 11#include "Team.h" 12 13 14class ImageListView : public BGroupView, private Team::Listener, 15 private TableListener { 16public: 17 class Listener; 18 19public: 20 ImageListView(Team* team, Listener* listener); 21 ~ImageListView(); 22 23 static ImageListView* Create(Team* team, Listener* listener); 24 // throws 25 26 void UnsetListener(); 27 28 void SetImage(Image* image); 29 30 virtual void MessageReceived(BMessage* message); 31 32 void LoadSettings(const BMessage& settings); 33 status_t SaveSettings(BMessage& settings); 34 35private: 36 class ImagesTableModel; 37 38private: 39 // Team::Listener 40 virtual void ImageAdded(const Team::ImageEvent& event); 41 virtual void ImageRemoved(const Team::ImageEvent& event); 42 43 // TableListener 44 virtual void TableSelectionChanged(Table* table); 45 46 void _Init(); 47 48private: 49 Team* fTeam; 50 Image* fImage; 51 Table* fImagesTable; 52 ImagesTableModel* fImagesTableModel; 53 Listener* fListener; 54}; 55 56 57class ImageListView::Listener { 58public: 59 virtual ~Listener(); 60 61 virtual void ImageSelectionChanged(Image* image) = 0; 62}; 63 64 65#endif // IMAGE_LIST_VIEW_H 66