// MyCell - version 1.0
// Written by Yanxueming <yanxm2003@hotmail.com>
// Copyright (C) 2006-2006
// All rights reserved.
//
// The code and information is provided "as-is" without
// warranty of any kind, either expressed or implied.
#pragma once
#include "base.h"
//#include "CellRange.h"
namespace mycell{
class Grid;
class HeaderDragImpl
{
Grid* pGrid_;
int preSizingPos_;
CellID sizingCell_;
char dragDelta_;
enum {GHOST_LINE_WIDTH=1};
public:
HeaderDragImpl(Grid* p):pGrid_(p){}
BEGIN_MSG_MAP(HeaderDragImpl)
MESSAGE_HANDLER(WM_MOUSEMOVE, OnMouseMove)
MESSAGE_HANDLER(WM_LBUTTONDOWN, OnLButtonDown)
MESSAGE_HANDLER(WM_LBUTTONUP, OnLButtonUP)
END_MSG_MAP()
private:
BOOL MouseOverColumnResizeArea(CellID cell,CellHitTestConstants hit)
{
if(-1==cell.row){
if(cell.col>=0 && ( cellHTRight==hit || cellHTRightTop==hit || cellHTRightBottom==hit))
return TRUE;
if(cell.col>0 && (cellHTLeft==hit || cellHTLeftTop==hit || cellHTLeftBottom==hit))
return TRUE;
}
return FALSE;
}
BOOL MouseOverRowResizeArea(CellID cell,CellHitTestConstants hit)
{
if(-1==cell.col){
if(cell.row>=0 && (cellHTBottom==hit || cellHTLeftBottom==hit || cellHTRightBottom==hit))
return TRUE;
if(cell.row>0 && (cellHTTop==hit || cellHTLeftTop==hit || cellHTRightTop==hit) )
return TRUE;
}
return FALSE;
}
private:
LRESULT OnMouseMove(UINT nFlags,WPARAM,LPARAM lParam,BOOL&);
LRESULT OnLButtonDown(UINT,WPARAM,LPARAM,BOOL&);
LRESULT OnLButtonUP(UINT,WPARAM,LPARAM,BOOL&);
};
}//namespace mycell