#include <windows.h>

#ifndef __SEPARATORCLASS
#define __SEPARATORCLASS

#define SEPARATOR_HORIZONTAL	1
#define SEPARATOR_VERTICAL		2

#define SEPARATOR_THICK			3

class CSeparator
{
	private:
		LRESULT CALLBACK WindowProcHor(HWND hwnd,UINT msg,WPARAM wp,LPARAM lp);
		LRESULT CALLBACK WindowProcVer(HWND hwnd,UINT msg,WPARAM wp,LPARAM lp);
		static LRESULT CALLBACK StaticWindowProcHor(HWND hwnd,UINT msg,WPARAM wp,LPARAM lp);
		static LRESULT CALLBACK StaticWindowProcVer(HWND hwnd,UINT msg,WPARAM wp,LPARAM lp);
		void DrawXorBar(HDC hdc, DWORD x, DWORD y, DWORD width, DWORD height);
		int delta;//pri zacati sledovania pohybu mysi nemusel byt kurzor presne v strede separatora, koriguj tento rozdiel
		HWND hwnd, hwndParent;
		POINT oldPos;//posledna pozicia separatora

		void (*sizedCallback) (RECT *rcClient);
		void (*getMinMax) (DWORD *minScreen, DWORD *maxScreen);
		void GetParentCoordinates(RECT *rc);

		BYTE type;

	public:
		CSeparator(DWORD type, HWND parent, DWORD posX, DWORD posY, DWORD size, void sizedCallback(RECT*), void getMinMax(DWORD*,DWORD*));
		~CSeparator();

		void SetPosition(DWORD posX, DWORD posY, DWORD size);
		HWND GetHandle();
};

#endif __SEPARATORCLASS