#ifndef IBORDER_H
#define IBORDER_H

#ifdef _WIN32
#pragma once
#endif

#include "VGUI.h"

class KeyValues;

namespace vgui
{

	class IScheme;

	class IBorder
	{
	public:
		IBorder() {}
		virtual ~IBorder() {}

		virtual void Paint(VPANEL panel) = 0;
		virtual void Paint(int x0, int y0, int x1, int y1) = 0;
		virtual void Paint(int x0, int y0, int x1, int y1, int breakSide, int breakStart, int breakStop) = 0;
		virtual void SetInset(int left, int top, int right, int bottom) = 0;
		virtual void GetInset(int& left, int& top, int& right, int& bottom) = 0;
		virtual void ApplySchemeSettings(IScheme* pScheme, KeyValues* inResourceData) = 0;
		virtual const char* GetName() = 0;
		virtual void SetName(const char* name) = 0;

		enum backgroundtype_e
		{
			BACKGROUND_FILLED,
			BACKGROUND_TEXTURED,
			BACKGROUND_ROUNDEDCORNERS,
		};
		virtual backgroundtype_e GetBackgroundType() = 0;

		enum sides_e
		{
			SIDE_LEFT = 0,
			SIDE_TOP = 1,
			SIDE_RIGHT = 2,
			SIDE_BOTTOM = 3
		};

		virtual bool PaintFirst(void) = 0;
	};

}   


#endif  