//
//	Copyright © 2005 Nemetschek North America 
//	All Rights Reserved.
//
// Created by Vladislav Stanev

#pragma once

namespace VWFC
{
	namespace VWObjects
	{
		class VWObjectIterator
		{
		public:
							VWObjectIterator(MCObjectHandle hObj);
			virtual			~VWObjectIterator();
		
		public:
			MCObjectHandle		MoveNext();
			MCObjectHandle		MoveNextSelected();
			MCObjectHandle		MovePrev();
			MCObjectHandle		MovePrevSelected();
			MCObjectHandle		GetObject() const;
			MCObjectHandle		operator++();
			MCObjectHandle		operator++(int);
			MCObjectHandle		operator--();
			MCObjectHandle		operator--(int);
			MCObjectHandle		operator*() const;

		// Tools
		public:
			static MCObjectHandle	NextObject(MCObjectHandle hObj);
			static MCObjectHandle	PrevObject(MCObjectHandle hObj);
			static MCObjectHandle	NextSelectedObject(MCObjectHandle hObj);
			static MCObjectHandle	PrevSelectedObject(MCObjectHandle hObj);
			

		protected:
			MCObjectHandle	fhObject;
		};
	}
}