Files
TempleOS-Rijn/LT/Adam/Gr/GrChar.APZ
T
2018-09-08 21:45:20 +02:00

76 lines
1.7 KiB
Plaintext

#help_index "Graphics/Char"
public void PlotScreenStr(I1 *s,U8 attr,I8 x,I8 y)
{
U1 ch;
attr<<=8;
while (ch=*s++) {
PlotScreenChar(ch+attr,x,y);
x++;
}
}
public void PlotWinStr(TssStruct *tss,I1 *s,U8 attr,I8 x,I8 y)
{
U1 ch;
attr<<=8;
while (ch=*s++) {
PlotWinChar(tss,ch+attr,x,y);
x++;
}
}
public void PlotBorderStr(TssStruct *tss,I1 *s,U8 attr,I8 x,I8 y)
{
U1 ch;
attr<<=8;
while (ch=*s++) {
PlotBorderChar(tss,ch+attr,x,y);
x++;
}
}
public void DrawBorder(TssStruct *tss,BoolU4 solid,I8 l,I8 r,I8 t,I8 b,U8 attr,BoolU4 clip_to_win)
{
I8 i;
solid+=attr<<8;
if (clip_to_win) {
PlotWinChar(tss,132+solid,l-1,t-1);
PlotWinChar(tss,134+solid,r+1,t-1);
PlotWinChar(tss,136+solid,l-1,b+1);
PlotWinChar(tss,138+solid,r+1,b+1);
for (i=l;i<=r;i++) {
PlotWinChar(tss,130+solid,i,t-1);
PlotWinChar(tss,130+solid,i,b+1);
}
for (i=t;i<=b;i++) {
PlotWinChar(tss,128+solid,l-1,i);
PlotWinChar(tss,128+solid,r+1,i);
}
} else {
PlotScreenChar(132+solid,l-1,t-1);
PlotScreenChar(134+solid,r+1,t-1);
PlotScreenChar(136+solid,l-1,b+1);
PlotScreenChar(138+solid,r+1,b+1);
for (i=l;i<=r;i++) {
PlotScreenChar(130+solid,i,t-1);
PlotScreenChar(130+solid,i,b+1);
}
for (i=t;i<=b;i++) {
PlotScreenChar(128+solid,l-1,i);
PlotScreenChar(128+solid,r+1,i);
}
}
}
void DrawTaskBorder(TssStruct *tss)
{
DrawBorder(tss,tss==sys_cur_focus_task,
tss->win_left,tss->win_right,
tss->win_top,tss->win_bottom,
tss->border_attribute,FALSE);
}
#help_index "Graphics"