Corretto scrolling
git-svn-id: svn://10.65.10.50/trunk@2486 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
d0714c6c0e
commit
f94f3309bb
@ -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);
|
||||
|
Loading…
x
Reference in New Issue
Block a user