Corretto scrolling

git-svn-id: svn://10.65.10.50/trunk@2486 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
villa 1996-01-23 11:55:22 +00:00
parent d0714c6c0e
commit f94f3309bb

View File

@ -522,7 +522,7 @@ void TViswin::adjust_selection (
}
}
void TViswin::shift_screen (scroll dir)
void TViswin::shift_screen(scroll dir)
{
RCT r;
@ -534,17 +534,17 @@ void TViswin::shift_screen (scroll dir)
{
case up:
case down:
xvt_rect_set (&r, 0, taby(Y_OFFSET)+2,
tabx(int(_textcolumns) + X_OFFSET), taby(int(_textrows) + Y_OFFSET));
xvt_dwin_scroll_rect (win (), &r, 0, dir == down ? taby(1) : -taby(1));
xvt_rect_set(&r, 0, taby(Y_OFFSET)/*+2*/,
tabx(int(_textcolumns) + X_OFFSET), taby(int(_textrows) + Y_OFFSET));
xvt_dwin_scroll_rect (win(), &r, 0, dir == down ? taby(1) : -taby(1));
paint_row (dir == up ? origin ().y + _textrows - 1 : origin ().y);
break;
case left:
case right:
xvt_rect_set (&r,
tabx(X_OFFSET), 0,
tabx(int(_textcolumns) + X_OFFSET) + 2,
taby(int(_textrows) + 1) - 2);
xvt_rect_set(&r,
tabx(X_OFFSET), 0,
tabx(int(_textcolumns) + X_OFFSET)/* + 2*/,
taby(int(_textrows) + 1)/* - 2*/);
xvt_dwin_scroll_rect (win (), &r, dir == right ? tabx(1) : -tabx(1), 0);
paint_column (dir == left ? origin ().x + _textcolumns - 1 : origin ().x, dir == left);
@ -598,16 +598,16 @@ void TViswin::repos_buttons ()
if (buttons == 0)
return;
autoscroll (FALSE);
set_mode (M_COPY);
set_brush (BACKGROUND);
bar (5, rows () - BUTTONROW_SIZE, columns () + 1, rows () + 1);
autoscroll (TRUE);
autoscroll(FALSE);
set_mode(M_COPY);
set_brush(BACKGROUND);
bar(5, rows()-BUTTONROW_SIZE, columns()+1, rows()+1);
autoscroll(TRUE);
RCT wr;
xvt_vobj_get_client_rect (win (), &wr);
xvt_vobj_get_client_rect(win(), &wr);
RCT br;
xvt_vobj_get_client_rect (_button[0], &br);
xvt_vobj_get_client_rect(_button[0], &br);
int space = (wr.right - buttons * br.right) / (buttons + 1);
if (space < 0)
@ -654,11 +654,11 @@ void TViswin::paint_screen ()
PNT b, e;
b.h = tabx(5);
b.v = taby((int) (j + (long)Y_OFFSET - origin ().y)) - 2;
b.v = taby((int)(j + (long)Y_OFFSET - origin().y))/* -2 *****/;
e.h = tabx(columns());
e.v = b.v;
xvt_dwin_draw_set_pos (win (), b);
xvt_dwin_draw_line (win (), e);
xvt_dwin_draw_set_pos(win(), b);
xvt_dwin_draw_line(win(), e);
set_pen (COLOR_LTGRAY);
e.v++;
b.v++;
@ -681,7 +681,7 @@ void TViswin::paint_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
{
const int rw = (int) (j % (long) _formlen);
const int rw = (int)(j % (long)_formlen);
const int ox = (int)origin().x;
const int mx = ox + columns();
@ -720,12 +720,12 @@ void TViswin::paint_background(
x1 = (byte)rwd[cnt++];
if (x1 >= ox && x1 <= mx)
{
x1 += (X_OFFSET -1) - ox;
b.h = e.h = tabx(2*x1+1) / 2;
x1 += (X_OFFSET-1) - ox;
b.h = e.h = tabx(2*x1+1)/2;
b.v = taby(row);
e.v = taby(row + 1);
xvt_dwin_draw_set_pos (win(), b);
xvt_dwin_draw_line (win(), e);
e.v = taby(row+1);
xvt_dwin_draw_set_pos(win(), b);
xvt_dwin_draw_line(win(), e);
}
break;
case 'o': // verticale pezzo sopra
@ -736,9 +736,9 @@ void TViswin::paint_background(
x1 += (X_OFFSET -1) - ox;
b.h = e.h = tabx(2*x1+1) / 2;
b.v = taby(row);
e.v = taby(2*row+1) / 2;
xvt_dwin_draw_set_pos (win (), b);
xvt_dwin_draw_line (win (), e);
e.v = taby(2*row+1)/2;
xvt_dwin_draw_set_pos (win(), b);
xvt_dwin_draw_line (win(), e);
}
break;
case 'u': // verticale pezzo sotto
@ -747,11 +747,11 @@ void TViswin::paint_background(
if (x1 >= ox && x1 <= mx)
{
x1 += (X_OFFSET -1) - ox;
b.h = e.h = tabx(2*x1+1) / 2;
b.v = taby(2*row+1) / 2;
b.h = e.h = tabx(2*x1+1)/2;
b.v = taby(2*row+1)/2;
e.v = taby(row + 1);
xvt_dwin_draw_set_pos (win (), b);
xvt_dwin_draw_line (win (), e);
xvt_dwin_draw_set_pos(win(), b);
xvt_dwin_draw_line(win(), e);
}
break;
case 'h': // orizzontale intera
@ -807,7 +807,7 @@ void TViswin::paint_background(
if (i && i->ok())
{
short delta = tabx(short(origin().x-x1-X_OFFSET)); // Primo pixel sorgente
short delta = tabx(short(origin().x - x1)); // Primo pixel sorgente
if (delta < 0) delta = 0;
if (delta < width)
{
@ -816,8 +816,8 @@ void TViswin::paint_background(
RCT src; xvt_rect_set(&src, p.h, p.v, width, min(p.v+taby(1)+scroll , i->height()));
if (src.top < i->height())
{
short px = short(x1-origin().x+X_OFFSET);
if (px < X_OFFSET) px = X_OFFSET;
short px = short(x1-origin().x);
if (px < 0) px = 0; px += X_OFFSET;
p.h = tabx(px); p.v = taby(row);
RCT dst = src; xvt_rect_set_pos(&dst, p);
i->draw(win(), dst, src);
@ -880,7 +880,7 @@ void TViswin::paint_row (long j)
RCT r;
r.top = row * CHARY;
r.left = tabx(X_OFFSET -1),
r.bottom = r.top + taby(1) + 2;
r.bottom = r.top + taby(1)/* + 1*/;
r.right = tabx(255);
xvt_dwin_draw_rect (win (), &r);
}
@ -1176,7 +1176,7 @@ void TViswin::update ()
check_link();
if (_isselection)
erase_selection ();
clear (COLOR_WHITE);
clear(COLOR_WHITE);
set_mode (M_COPY);
set_brush (BACKGROUND);
autoscroll (FALSE);
@ -1185,11 +1185,6 @@ void TViswin::update ()
{
bar (0, 0, columns() + 1, 1);
bar (0, 0, 5, rows() + 1);
// RCT r1, r2;
// r1.top = 0; r1.left = 0; r1.bottom = CHARY; r1.right = (columns() + 1)*CHARX;
// r2.top = 0; r2.left = 0; r2.bottom = (rows()+1)*CHARY; r2.right = 5*CHARX;
// xvt_draw_rect(win(), r1, COLOR_WHITE, COLOR_GRAY, 2);
// xvt_draw_rect(win(), r2, COLOR_WHITE, COLOR_GRAY, 2);
}
if (_showbuts)
bar ((X_OFFSET -1), rows()-BUTTONROW_SIZE, columns() + 1, rows() + 1);