CtrlLib: ArrayCtrl: WhenMouseMove, ToolTip minor changes

git-svn-id: svn://ultimatepp.org/upp/trunk@2008 f0d560ea-af0d-0410-9eb7-867de7ffcac7
This commit is contained in:
cxl 2010-02-03 10:42:49 +00:00
parent 476261a533
commit 45b79fd439
5 changed files with 54 additions and 20 deletions

View file

@ -1410,15 +1410,19 @@ void ArrayCtrl::DoPoint(Point p, bool dosel) {
SetWantFocus();
}
int ArrayCtrl::GetClickColumn(int ii, Point p)
{
for(int i = 0; i < column.GetCount(); i++)
if(GetCellRect(ii, i).Contains(p))
return i;
return Null;
}
void ArrayCtrl::ClickColumn(Point p)
{
clickpos.x = Null;
if(clickpos.y >= 0)
for(int i = 0; i < column.GetCount(); i++)
if(GetCellRect(clickpos.y, i).Contains(p)) {
clickpos.x = i;
break;
}
clickpos.x = GetClickColumn(clickpos.y, p);
}
void ArrayCtrl::ClickSel(dword flags)
@ -1529,13 +1533,28 @@ void ArrayCtrl::SyncInfo()
void ArrayCtrl::MouseMove(Point p, dword)
{
int ii = Null;
if(WhenMouseMove) {
ii = GetLineAt(p.y + sb);
DDUMP(ii);
if(IsNull(ii))
WhenMouseMove(Null);
else
WhenMouseMove(Point(GetClickColumn(ii, p), ii));
}
if(mousemove && !IsReadOnly()) {
int i = GetLineAt(p.y + sb);
if(!IsNull(i)) SetCursor(i);
if(IsNull(ii))
ii = GetLineAt(p.y + sb);
if(!IsNull(ii)) SetCursor(ii);
}
SyncInfo();
}
void ArrayCtrl::MouseLeave()
{
WhenMouseMove(Null);
}
Image ArrayCtrl::CursorImage(Point p, dword)
{
return header.GetSplit(p.x) < 0 || header.GetMode() == HeaderCtrl::FIXED ? Image::Arrow()