Update lib font

git-svn-id: svn://kolibrios.org@5736 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
pavelyakov
2015-08-17 16:21:51 +00:00
parent 27e3b1b723
commit d2cc18ec69
41 changed files with 81 additions and 55 deletions

View File

@@ -4,16 +4,13 @@
byte id,key; byte id,key;
FONT TimeNewRoman = 0;
FONT Verdana = 0;
void main() void main()
{ {
SetEventMask(1100111b); SetEventMask(1100111b);
Verdana.load("font/Verdana 15px original"); font.load("font/Verdana.kf");
font.load("font/Georgia 45px original");
TimeNewRoman.load("font/Times New Roman 30px original");
loop() loop()
{ {
switch(WaitEvent()) switch(WaitEvent())
@@ -43,24 +40,20 @@ void main()
} }
} }
} }
char buf[40];
void draw_window() void draw_window()
{ {
proc_info Form; proc_info Form;
int i =0; int i =8;
int ii = 0;
DefineAndDrawWindow(215,100,450,500,0x33,0xFFFFFF,"Window header"); DefineAndDrawWindow(215,100,450,500,0x33,0xFFFFFF,"Window header");
GetProcessInfo(#Form, SelfInfo); GetProcessInfo(#Form, SelfInfo);
while(i<=45)
font.text(0,0,"Georgia 45px original",0x5522DD); {
font.text(3,43,"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>, <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>. 1234567890",0xDEDEDE); sprintf(#buf,"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/size font %d <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.",i);
font.text(0,40,"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>, <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>. 1234567890",0x0); font.text(0,ii,#buf,0,i);
ii+=font.height;
i++;
font.text(0,80,"Times New Roman 30px original",0x993366); }
TimeNewRoman.text(3,113,"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>, <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>. 1234567890",0xDEDEDE);
TimeNewRoman.text(0,110,"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>, <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>. 1234567890",0x0);
Verdana.textarea(0,150,"<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, \r<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.\r<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.\r<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>: http://font.ga.\r<EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>,\r<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!\r<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>,\r<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.\r<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> (<28>.<2E>.) <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>,\r<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> kpack. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> https://vk.com/pavelyakov39\r<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.<2E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ANSII.",0x5522DD);
Verdana.text(30,350,"<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>...",0xAA4444);
font.text(60,370,"<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!!!",0xDD4444);
} }

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -12,18 +12,48 @@
:struct FONT :struct FONT
{ {
byte width,height,offsetLine; byte width,height,offsetLine;
dword file_size;
word block; word block;
dword data; dword data;
dword begin;
dword size_file; dword size_file;
byte load(...); byte load(...);
byte symbol(word x,y;byte s;dword c); byte symbol(word x,y;byte s;dword c);
dword text(word x,y;dword text,c); dword text(word x,y;dword text,c;byte size);
dword textarea(word x,y;dword text,c); dword textarea(word x,y;dword text,c;byte size);
byte changeSIZE(byte size);
}; };
FONT font = 0; FONT font = 0;
:dword FONT::text(word x,y;dword text1,c) :byte FONT::changeSIZE(byte size)
{
dword TMP_DATA;
dword ofs;
byte s;
IF(size<9) size = 8;
IF(size>45)size = 45;
s = size-8;
data = begin;
TMP_DATA = data;
TMP_DATA +=s*4;
ofs = DSDWORD[TMP_DATA];
IF(ofs==-1)return false;
data += ofs;
data += 156;
TMP_DATA = data;
file_size = DSDWORD[TMP_DATA];
TMP_DATA += file_size;
TMP_DATA--;
height = DSBYTE[TMP_DATA];
TMP_DATA--;
width = DSBYTE[TMP_DATA];
block = math.ceil(height*width/32);
return true;
}
:dword FONT::text(word x,y;dword text1,c;byte size)
{ {
dword len=0; dword len=0;
if(size)if(!changeSIZE(size))return 0;
WHILE(DSBYTE[text1]) WHILE(DSBYTE[text1])
{ {
len += symbol(x+len,y,DSBYTE[text1],c); len += symbol(x+len,y,DSBYTE[text1],c);
@@ -31,9 +61,10 @@ FONT font = 0;
} }
return len; return len;
} }
:dword FONT::textarea(word x,y;dword text1,c) :dword FONT::textarea(word x,y;dword text1,c;byte size)
{ {
dword len=0; dword len=0;
if(size)if(!changeSIZE(size))return 0;
WHILE(DSBYTE[text1]) WHILE(DSBYTE[text1])
{ {
IF(DSBYTE[text1]=='\r'){ y+=height; len=0;} IF(DSBYTE[text1]=='\r'){ y+=height; len=0;}
@@ -44,38 +75,39 @@ FONT font = 0;
} }
:byte FONT::symbol(signed x,y;byte s;dword c) :byte FONT::symbol(signed x,y;byte s;dword c)
{ {
dword xi,yi; dword xi,yi;
dword tmp,_; dword tmp,_;
dword iii; dword iii;
byte rw=0; byte rw=0;
IF(offsetLine)y+=offsetLine; IF(offsetLine)y+=offsetLine;
IF(s==32)return width/4; IF(s==32)return width/4;
yi = 0; IF(s==9)return width;
iii = 0; yi = 0;
tmp = 4*block*s; iii = 0;
tmp +=data; tmp = 4*block*s;
while(yi<height) tmp +=data;
{ while(yi<height)
xi = 0; {
WHILE(xi<width) xi = 0;
{ WHILE(xi<width)
IF(!(iii%32)) {
{ IF(!(iii%32))
tmp += 4; {
_ = DSDWORD[tmp]; tmp += 4;
} _ = DSDWORD[tmp];
ELSE _ >>= 1; }
IF(_&1) ELSE _ >>= 1;
{ IF(_&1)
IF(xi>rw)rw=xi; {
PutPixel(x+xi,y+yi,c); IF(xi>rw)rw=xi;
} PutPixel(x+xi,y+yi,c);
xi++; }
iii++; xi++;
} iii++;
yi++; }
} yi++;
return rw; }
return rw;
} }
:byte FONT::load(dword path) :byte FONT::load(dword path)
{ {
@@ -83,6 +115,7 @@ FONT font = 0;
IF(data)free(data); IF(data)free(data);
tmp = io.read(path); tmp = io.read(path);
data = tmp; data = tmp;
begin = data;
size_file = io.FILES_SIZE; size_file = io.FILES_SIZE;
tmp +=size_file; tmp +=size_file;
tmp--; tmp--;