// utility class for picking resolutions

#ifndef RESPICKER_HPP
#define RESPICKER_HPP

#include "deGlobalTypes.hpp"
#include "deArray.hpp"

class IdeDriver;
struct IdeDriver::deDisplay;

class deResLister
{
public:
	deResLister();
	~deResLister();

struct ResInfo
{
	long AdapterNum;
	long ModeNum;
	long Width;
	long Height;
	long BitDepth;
	long Refresh;
};

deBoolean EnumDriver(const IdeDriver * pDriver);
long GetNumAdapters() const;
long GetNumResolutions() const;
ResInfo* GetResList() const;

private:
	deTArray<ResInfo> m_ResList;
	long m_NumAdapters;
};

class deResPicker
{
public:
	deResPicker();
	~deResPicker();

	deBoolean PickResolution(HINSTANCE hInstance, HWND ParentWindow, const IdeDriver* pDriver, IdeDriver::deDisplay* pDisplay);

private:
	deResLister m_Lister;
};

#endif