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