Corretto scrolling orizzontale background
git-svn-id: svn://10.65.10.50/trunk@2439 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
1b0596fb89
commit
04c9d7c1ae
@ -677,7 +677,7 @@ void TViswin::paint_screen ()
|
|||||||
|
|
||||||
// j = riga totale, row = riga a video
|
// j = riga totale, row = riga a video
|
||||||
// @mfunc Permette di stampare il background
|
// @mfunc Permette di stampare il background
|
||||||
void TViswin::paint_background (
|
void TViswin::paint_background(
|
||||||
long j, // @parm Numero della riga di cui stampare il background
|
long j, // @parm Numero della riga di cui stampare il background
|
||||||
int row) // @parm Numero della riga a video sulla quale viene stampato il background
|
int row) // @parm Numero della riga a video sulla quale viene stampato il background
|
||||||
{
|
{
|
||||||
@ -707,6 +707,10 @@ void TViswin::paint_background (
|
|||||||
PNT b, e;
|
PNT b, e;
|
||||||
int cnt = 0;
|
int cnt = 0;
|
||||||
char ch;
|
char ch;
|
||||||
|
|
||||||
|
bool isbeg = FALSE;
|
||||||
|
bool isend = FALSE;
|
||||||
|
|
||||||
while ((ch = rwd[cnt++]) != '\0')
|
while ((ch = rwd[cnt++]) != '\0')
|
||||||
{
|
{
|
||||||
switch (ch)
|
switch (ch)
|
||||||
@ -757,22 +761,26 @@ void TViswin::paint_background (
|
|||||||
b.v = e.v = taby(2*row+1) / 2;
|
b.v = e.v = taby(2*row+1) / 2;
|
||||||
b.h = tabx(x1);
|
b.h = tabx(x1);
|
||||||
e.h = tabx(x2 + 1);
|
e.h = tabx(x2 + 1);
|
||||||
xvt_dwin_draw_set_pos (win (), b);
|
xvt_dwin_draw_set_pos(win(), b);
|
||||||
xvt_dwin_draw_line (win (), e);
|
xvt_dwin_draw_line(win(), e);
|
||||||
break;
|
break;
|
||||||
case 'r': // orizzontale scorciata agli estremi
|
case 'r': // orizzontale scorciata agli estremi
|
||||||
x1 = (byte) rwd[cnt++];
|
x1 = (byte) rwd[cnt++];
|
||||||
x2 = (byte) rwd[cnt++];
|
x2 = (byte) rwd[cnt++];
|
||||||
|
isbeg = ox <= (x1-1);
|
||||||
|
isend = mx >= (x2-1);
|
||||||
if (x1 <= mx && x2 >= ox)
|
if (x1 <= mx && x2 >= ox)
|
||||||
{
|
{
|
||||||
x1 += (X_OFFSET -1) - ox;
|
x1 += (X_OFFSET -1) - ox;
|
||||||
if (x1 < X_OFFSET) x1 = X_OFFSET;
|
if (x1 < X_OFFSET) x1 = X_OFFSET;
|
||||||
x2 += (X_OFFSET -1) - ox;
|
x2 += (X_OFFSET -1) - ox;
|
||||||
b.v = e.v = taby(2*row+1) / 2;
|
b.v = e.v = taby(2*row+1) / 2;
|
||||||
b.h = tabx(2*x1+1) / 2;
|
if (isbeg) b.h = tabx(2*x1+1) / 2;
|
||||||
e.h = tabx(2*x2+1) / 2;
|
else b.h = tabx(x1);
|
||||||
xvt_dwin_draw_set_pos (win (), b);
|
if (isend) e.h = tabx(2*x2+1) / 2;
|
||||||
xvt_dwin_draw_line (win (), e);
|
else e.h = tabx(x2 +1);
|
||||||
|
xvt_dwin_draw_set_pos(win(), b);
|
||||||
|
xvt_dwin_draw_line(win(), e);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -875,7 +883,7 @@ void TViswin::paint_row (long j)
|
|||||||
xvt_dwin_draw_rect (win (), &r);
|
xvt_dwin_draw_rect (win (), &r);
|
||||||
}
|
}
|
||||||
|
|
||||||
paint_background (j, row);
|
paint_background(j, row);
|
||||||
set_opaque_text(FALSE);
|
set_opaque_text(FALSE);
|
||||||
|
|
||||||
const char *cp;
|
const char *cp;
|
||||||
@ -953,7 +961,7 @@ void TViswin::paint_column (
|
|||||||
{
|
{
|
||||||
const long riga_txt = orig_y + l;
|
const long riga_txt = orig_y + l;
|
||||||
const int riga_scr = (int)l+Y_OFFSET;
|
const int riga_scr = (int)l+Y_OFFSET;
|
||||||
paint_background (riga_txt,riga_scr);
|
paint_background (riga_txt, riga_scr);
|
||||||
#if XVT_OS == XVT_OS_WIN // paint page limits
|
#if XVT_OS == XVT_OS_WIN // paint page limits
|
||||||
if ((riga_txt% _formlen) == (_formlen - 1) && _toplevel)
|
if ((riga_txt% _formlen) == (_formlen - 1) && _toplevel)
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user