/*
	GWEN
	Copyright (c) 2010 Facepunch Studios
	See license in Gwen.h
*/

#pragma once
#ifndef GWEN_CONTROLS_RADIOBOTTONCONTROLLER_H
#define GWEN_CONTROLS_RADIOBOTTONCONTROLLER_H

#include "Gwen/Controls/Base.h"
#include "Gwen/Controls/Label.h"
#include "Gwen/Controls/RadioButton.h"

namespace Gwen
{
namespace Controls
{
class GWEN_EXPORT RadioButtonController : public Base
{
public:
	GWEN_CONTROL(RadioButtonController, Base);

	virtual void Render(Skin::Base* /*skin*/){};
	virtual void OnRadioClicked(Base* pFromPanel);

	virtual void OnChange();

	virtual LabeledRadioButton* AddOption(const Gwen::String& strText, const Gwen::String& strOptionName = "");
	virtual LabeledRadioButton* AddOption(const Gwen::UnicodeString& strText, const Gwen::String& strOptionName = "");

	virtual LabeledRadioButton* GetSelected() { return m_Selected; }

	virtual String GetSelectedName() { return m_Selected->GetName(); }
	virtual UnicodeString GetSelectedLabel() { return m_Selected->GetLabel()->GetText(); }

	Event::Caller onSelectionChange;

private:
	LabeledRadioButton* m_Selected;
};
}  // namespace Controls
}  // namespace Gwen
#endif
