Patch level : 2.1 54

Files correlati     : xvagadll.dll
Ricompilazione Demo : [ ]
Commento            :

0000177
Spostandosi con i tasti freccia in un campo si sposta il cursore
ma non viene cancellato dalla posizione precedente


git-svn-id: svn://10.65.10.50/trunk@12119 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 2004-05-26 13:16:26 +00:00
parent 9752ae07ed
commit c030375ba0

View File

@ -209,7 +209,7 @@ protected:
virtual void Notify() { Toggle(); }
public:
void SetPos(int x, int y) { _pos.h = x; _pos.v = y; }
void SetPos(int x, int y);
void SetSize(int x, int y) { _size.x = x; _size.y = y; }
void Show(WINDOW w, bool on = true);
void Hide() { Show(false); }
@ -226,6 +226,13 @@ void TwxCaret::Kill()
_owner = NULL_WIN;
}
void TwxCaret::SetPos(int x, int y)
{
if (_visible && _drawn) // Lo cancella se necessario
Toggle();
_pos.h = x; _pos.v = y;
}
void TwxCaret::Show(WINDOW w, bool on)
{
if (_visible && _drawn)
@ -259,9 +266,10 @@ void TwxCaret::Toggle()
pen.width = _size.x;
pen.pat = PAT_SOLID;
pen.style = P_SOLID;
pen.color = _drawn ? dct.fore_color : dct.back_color;
xvt_dwin_set_cpen(_owner, &pen);
xvt_dwin_set_draw_mode(_owner, M_COPY);
pen.color = dct.fore_color;
xvt_dwin_set_draw_mode(_owner, M_NOT_XOR);
xvt_dwin_set_cpen(_owner, &pen);
xvt_dwin_draw_set_pos(_owner, _pos);
PNT p = _pos; p.v -= _size.y-1;