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

#pragma once
#ifndef GWEN_CONTROLS_HORIZONTALSCROLLBAR_H
#define GWEN_CONTROLS_HORIZONTALSCROLLBAR_H

#include "Gwen/Controls/Base.h"
#include "Gwen/Controls/Button.h"
#include "Gwen/Gwen.h"
#include "Gwen/Skin.h"
#include "Gwen/Controls/Dragger.h"
#include "Gwen/Controls/ScrollBar.h"

namespace Gwen
{
namespace Controls
{
class GWEN_EXPORT HorizontalScrollBar : public BaseScrollBar
{
public:
	GWEN_CONTROL(HorizontalScrollBar, BaseScrollBar);

	virtual void Layout(Skin::Base* skin);

	virtual void OnMouseClickLeft(int x, int y, bool bDown);
	virtual void OnBarMoved(Controls::Base* control);

	virtual int GetBarSize() { return m_Bar->Width(); }
	virtual int GetBarPos() { return m_Bar->X() - Height(); }
	virtual void SetBarSize(int size) { m_Bar->SetWidth(size); }
	virtual int GetButtonSize() { return Height(); }

	virtual void ScrollToLeft();
	virtual void ScrollToRight();
	virtual void NudgeLeft(Base* control);
	virtual void NudgeRight(Base* control);
	virtual float GetNudgeAmount();

	virtual float CalculateScrolledAmount();
	virtual bool SetScrolledAmount(float amount, bool forceUpdate);
};
}  // namespace Controls
}  // namespace Gwen
#endif
