#ifndef K3DSDK_BITMAP_SOURCE_H
#define K3DSDK_BITMAP_SOURCE_H

#include "ibitmap_source.h"
#include "bitmap.h"
#include "property_collection.h"
#include "selection.h"

namespace k3d
{

template<typename base_t>
class bitmap_source :
	public base_t,
	public ibitmap_source
{
public:
	bitmap_source(idocument& Document) :
		base_t(Document),
		m_output(init_name("output") + init_description("Output bitmap [bitmap]") + init_document(Document))
	{
		register_property(m_output);
	}

	iproperty& bitmap_source_output()
	{
		return m_output;
	}

protected:
	k3d_read_only_data_property(bitmap*, immutable_name, change_signal, no_undo, demand_storage, no_constraint) m_output;
};

} // namespace k3d

#endif // !K3DSDK_BITMAP_SOURCE_H

