mirror of
https://github.com/ultimatepp/ultimatepp.git
synced 2026-05-25 22:03:45 -06:00
changed svn layout
git-svn-id: svn://ultimatepp.org/upp/trunk@281 f0d560ea-af0d-0410-9eb7-867de7ffcac7
This commit is contained in:
commit
263ff5f895
2665 changed files with 642923 additions and 0 deletions
44
reference/VirtualArray/main.cpp
Normal file
44
reference/VirtualArray/main.cpp
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
#include <CtrlLib/CtrlLib.h>
|
||||
|
||||
using namespace Upp;
|
||||
|
||||
static String sNumberAsText(int number)
|
||||
{
|
||||
static const char * const digits[20] = {
|
||||
"", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine",
|
||||
"ten", "eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen",
|
||||
"seventeen", "eighteen", "nineteen"
|
||||
};
|
||||
static const char * const tens[10] = {
|
||||
"", "ten", "twenty", "thirty", "fourty", "fifty", "sixty", "seventy", "eighty", "ninety"
|
||||
};
|
||||
|
||||
if(number < 20)
|
||||
return digits[number];
|
||||
if(number < 100)
|
||||
return tens[number / 10] + String(" ") + sNumberAsText(number % 10);
|
||||
if(number < 1000)
|
||||
return digits[number / 100] + String(" hundred ") + sNumberAsText(number % 100);
|
||||
if(number < 1000000)
|
||||
return sNumberAsText(number / 1000) + " thousand, " + sNumberAsText(number % 1000);
|
||||
return "";
|
||||
}
|
||||
|
||||
struct NumberToText : public Convert {
|
||||
virtual Value Format(const Value& q) const {
|
||||
int n = q;
|
||||
return n == 0 ? String("zero") : sNumberAsText(n);
|
||||
}
|
||||
};
|
||||
|
||||
GUI_APP_MAIN
|
||||
{
|
||||
ArrayCtrl array;
|
||||
array.AddRowNumColumn("number", 20);
|
||||
array.AddRowNumColumn("text", 80).SetConvert(Single<NumberToText>());
|
||||
array.SetVirtualCount(900000);
|
||||
TopWindow win;
|
||||
win.Zoomable().Sizeable();
|
||||
win.Add(array.SizePos());
|
||||
win.Run();
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue