ultimatepp/tutorial/Draw03/main.cpp
cxl ca62524c26 .tutorial
git-svn-id: svn://ultimatepp.org/upp/trunk@5529 f0d560ea-af0d-0410-9eb7-867de7ffcac7
2012-11-07 19:25:04 +00:00

47 lines
1 KiB
C++

#include <CtrlLib/CtrlLib.h>
using namespace Upp;
struct MyApp : TopWindow {
DropList fontlist;
void Paint(Draw& w) {
w.DrawRect(GetSize(), White);
w.Offset(50, 50);
const char *text = "Programming is fun";
Font fnt(~fontlist, 60);
int x = 0;
Vector<int> dx;
for(const char *s = text; *s; s++) {
int width = fnt[*s];
w.DrawRect(x, 0, width - 1, fnt.GetAscent(), Color(255, 255, 200));
w.DrawRect(x, fnt.GetAscent(), width - 1, fnt.GetDescent(), Color(255, 200, 255));
w.DrawRect(x + width - 1, 0, 1, fnt.GetHeight(), Black());
dx.Add(width + 4);
x += width;
}
w.DrawRect(0, 0, 4, 4, Black());
w.DrawText(0, 0, text, fnt);
w.DrawText(0, 70, text, fnt, Blue(), dx.GetCount(), dx.Begin());
w.End();
}
void NewFont() {
Refresh();
}
typedef MyApp CLASSNAME;
MyApp() {
for(int i = 0; i < Font::GetFaceCount(); i++)
fontlist.Add(i, Font::GetFaceName(i));
Add(fontlist.TopPos(0, MINSIZE).LeftPosZ(0, 200));
fontlist <<= 0;
fontlist <<= THISBACK(NewFont);
}
};
GUI_APP_MAIN
{
MyApp().Sizeable().Run();
}