// CObjectWin.h
// Author: A.Fombaron / I-Maginer
// Version: v1.00 - SVoyager v5.01
// Date: 070925

#ifndef _COBJECTWIN_H_
#define _COBJECTWIN_H_


#include "CObjectBase.h"
#include "../x/Objstr.h"


class CObjectWindow:public CObjectBase
{
private:
	int BMPx_inbitmap;
	int BMPy_inbitmap;
	int BMPwidth;
	int BMPheight;

public:
	CObjectWindow(container *,Layer *,int,int,int,int,int,int,int,int,int,int,int);
	virtual ~CObjectWindow();

	int IsMouseOnObject(int,int,int);
	int CursorMove(int,int,int,int,int);
	int CursorMoveIn(int,int,int,int,int);
	int CursorMoveInWithBtnPushed(int,int,int,int,int);
	int CursorMoveOut(int,int,int,int,int);
	int CursorMoveOutWithBtnPushed(int,int,int,int,int);
	int CursorMoveOutsideWithBtnPushed(int,int,int,int,int);
	int ClickIn(int,int,int,int,int,int);
	int UnClickIn(int,int,int,int,int,int);
	int ClickOut(int,int,int,int,int,int);
	int UnClickOut(int,int,int,int,int,int);
	int DblClickIn(int,int,int,int,int,int);
	int MouseWheel(int,int,int,int,int,int);
	int KeyUp(UINT,int,UINT,int);
	int KeyDown(UINT,int,int,UINT,int);
	int SetFocus(int,int,int);
	int KillFocus(int,int);

	int Timer(int);

	Layer *GetLayer(mmachine m,int p_tab);
	Layer *GetLayerPart(mmachine m,Rect2D *area2redraw,int p_tab);
	
	int DestroyAllLayers();
	int ResizeLayer(int,int,int);

	// for Links between Objects
	int handle(CObjMessage* msg);
	int supports( int type );
};


// Scol functions
int _CRcompWindow(mmachine);
int _DScompWindow(mmachine);
int _CONVERTcompWindowToObjNode(mmachine);
int _CBcompWindowCursorMove(mmachine);
int _CBcompWindowClick(mmachine);
int _CBcompWindowUnClick(mmachine);
int _CBcompWindowDblClick(mmachine);
int _CBcompWindowResizeResource(mmachine);
int _CBcompWindowResize(mmachine);


#endif //_COBJECTWIN_