Convert* GetConvert() { return convert; }
GridCtrl::ItemRect& GridCtrl::ItemRect::SetConvert(Convert &c) { (*edits)[id].convert = &c; return *this; }
void GridCtrl::Remove(int i, int cnt) { Remove0(i < 0 ? rowidx : fixed_rows + i, cnt); valid_cursor = false; }
if(n >= vitems.GetCount()) { return; }
Point cp(opt & UC_OLDCUR ? oldcur : curpos);
arrCount.Appending(true).AllSorting();
arrCount.ColumnAt(0).SetConvert ( DateIntConvert() ); ... struct DateIntConvertCls : ConvertDate { virtual Value Format(const Value& q) const; virtual Value Scan(const Value& text) const; virtual int Filter(int chr) const; }; // From sql borrow.cpp example Value DateIntConvertCls::Format(const Value& q) const { return IsNull(q) ? String() : ::Format(Date( 1970, 1, 1) + (int)q); } // Modified from UPP source Value DateIntConvertCls::Scan(const Value& text) const { const char *s; Date date; String txt = text; if(txt.IsEmpty()) return (Date) Null; s = StrToDate(date, txt); if(s) for(;;) { if(IsDigit(*s)) break; if(*s == '\0') return date - Date(1970, 1, 1); s++; } return ErrorValue(t_("Invalid date !")); } int DateIntConvertCls::Filter(int chr) const { return CharFilterDate(chr); } Convert& DateIntConvert() { return Single<DateIntConvertCls>(); }
r = pcList.GetRect(); // pcList is a ParentCtrl sz = pcList.GetSize(); // sz = {316, 167} acItemList.HSizePosZ().VSizePos(); // acItemList is an ArrayCtrl acItemList.AddColumn("item"); acItemList.AddColumn("time"); pcList.Add(acItemList); r = acItemList.GetRect(); // r = {0, 0, 316, 167}
r = pcList.GetRect(); // pcList is a ParentCtrl sz = pcList.GetSize(); // sz = {316, 167} acItemList.HSizePosZ().TopPos(0, sz.cy); // acItemList is an ArrayCtrl, only difference is here, vertical layout method acItemList.AddColumn("item"); acItemList.AddColumn("time"); pcList.Add(acItemList); r = acItemList.GetRect(); // r = {0, 0, 316, 167}
#include <CtrlLib/CtrlLib.h> using namespace Upp; GUI_APP_MAIN { TopWindow win; ArrayCtrl arr; arr.AddColumn(""); for(int i = 0; i < 10; i++){ arr.Add(i); arr.ShowLine(i, i%2); } win.Add(arr.SizePos()); win.Run(); }
int ArrayCtrl::FindEnabled(int i, int dir) { ASSERT(dir == -1 || dir == 1); while(i >= 0 && i < GetCount()) { if(IsLineEnabled(i)) return i; i += dir; } return -1; }
int ArrayCtrl::FindEnabled(int i, int dir) { ASSERT(dir == -1 || dir == 1); while(i >= 0 && i < GetCount()) { if(IsLineEnabled(i) && IsLineVisible(i)) return i; i += dir; } return -1; }