From 40ada17a2a4ad686937f107403d42b2e025d1b0b Mon Sep 17 00:00:00 2001 From: cxl Date: Wed, 9 Sep 2009 08:26:20 +0000 Subject: [PATCH] CtrlLib: ArrayCtrl VirtualCount vs IsLineEnabled fix git-svn-id: svn://ultimatepp.org/upp/trunk@1567 f0d560ea-af0d-0410-9eb7-867de7ffcac7 --- uppsrc/CtrlLib/ArrayCtrl.cpp | 9 +++++++-- uppsrc/CtrlLib/ArrayCtrl.h | 4 ++-- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/uppsrc/CtrlLib/ArrayCtrl.cpp b/uppsrc/CtrlLib/ArrayCtrl.cpp index a955510cc..c66e6c5dd 100644 --- a/uppsrc/CtrlLib/ArrayCtrl.cpp +++ b/uppsrc/CtrlLib/ArrayCtrl.cpp @@ -1306,7 +1306,12 @@ void ArrayCtrl::Select(int i, bool sel) void ArrayCtrl::EnableLine(int i, bool en) { - array[i].enabled = en; + array.At(i).enabled = en; +} + +bool ArrayCtrl::IsLineEnabled(int i) const +{ + return i < 0 ? false : i < array.GetCount() ? array[i].enabled : true; } void ArrayCtrl::Select(int i, int count, bool sel) @@ -1360,7 +1365,7 @@ void ArrayCtrl::CenterCursor() { int ArrayCtrl::FindEnabled(int i, int dir) { ASSERT(dir == -1 || dir == 1); - while(i >= 0 && i < array.GetCount()) { + while(i >= 0 && i < GetCount()) { if(IsLineEnabled(i)) return i; i += dir; diff --git a/uppsrc/CtrlLib/ArrayCtrl.h b/uppsrc/CtrlLib/ArrayCtrl.h index dbd16d7b5..9ccbec99c 100644 --- a/uppsrc/CtrlLib/ArrayCtrl.h +++ b/uppsrc/CtrlLib/ArrayCtrl.h @@ -404,8 +404,8 @@ public: void EnableLine(int i, bool e); void DisableLine(int i) { EnableLine(i, false); } - bool IsLineEnabled(int i) const { return array[i].enabled; } - bool IsLineDisabled(int i) const { return !array[i].enabled; } + bool IsLineEnabled(int i) const; + bool IsLineDisabled(int i) const { return IsLineEnabled(i); } Vector ReadRow(int i) const; // deprecated name Vector GetLine(int i) const { return ReadRow(i); }