76 lines
1.7 KiB
Plaintext
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"
|
|
|