#ifndef ROOM_WIDGET_H
#define ROOM_WIDGET_H

#include <QtGui>
#include "ui_roomWidget.h"
#include "softProj\clientServer\structs.h"

/// Widget for one of the ubication classes in accommodations widget
/** Widget for ubication class in accommodations widget. Represents one 
concrete ubication class from all possible classes.
*/
class RoomWidget : public QWidget {
	Q_OBJECT
public:
	/** Creates new instance of RoomWidget
	@param parent Parent widget
	*/
	RoomWidget(QWidget * parent);

	/** Sets name of the ubication class
	@param name Name of the ubication class
	*/
	void setName(const std::wstring & name);

	/** Sets image of the ubication class
	@param path Patho to icon picture of the ubication class
	*/
	void setIcon(const std::string & path);

	/** Sets quality level of the ubication class
	@param qualityClass Quality level of ubication class
	*/
	void setQualityClass(const std::wstring & qualityClass);

	/** Sets amount of all places from all rooms in the ubication class that are still available 
	@param value Amount of free places in the ubication class
	*/
	void setAvailableCount(unsigned long value);

	/** Sets amount of all places from all rooms in the ubication class that are already engaged
	@param value Amount of engaged places in the ubication class
	*/
	void setEngagedCount(unsigned long value);

	/** Sets amount of all rooms in the ubication class. This does not have to be sum of available
	and engaged places, because one room can have many places for more than one person
	@param value Amount of all roms in the ubication class
	*/
	void setRoomCount(unsigned long value);

	/** Sets price of one room when building new room
	@param value Price of new room
	*/
	void setPrice(unsigned long value);
private:
	Ui::RoomWidget ui_;	
private slots:
	void addRoomButtonClickedSlot();
signals:
	void addRoomSignal();
};

#endif