in reply to scroll position

tye was nice enough to guide me to the solution - I had been looking under Tk::Scrollbar and Scrolled instead of Tk::Text.

Use yview() to retreive the current position, then use yviewMoveTo($fract) to set the position.

Now I can attempt to mess with the Perl/Tk Chatterbox Client...(no more cutting and pasting to view ancient chat)

-dystrophy

Replies are listed 'Best First'.
Re: Re: scroll position
by dystrophy (Monk) on Jan 21, 2001 at 02:33 UTC
    You can use yview(moveto=>$fract) instead of yviewMoveTo($fract).

    Here is a convenience fix for the Perl/Tk Chatterbox Client.
    Change sub updChatterbox to:
    sub updChatterbox { my ($mytopchar, $myposition) = $Chatfield->yview(); # retreive sc +roll pos &Status('Checking for new chat messages...'); foreach (&getFromServer('chat')) { &printChat("$_"); } &Status($status_idle); if ($myposition == 1) { $Chatfield->yview(moveto=>$myposition); } else { $Chatfield->yview(moveto=>$mytopchar); # restore scroll pos } }

    This allows you to scroll back and read aged chat without having the client jump to the bottom. No more cutting and pasting!!

    Update: If I had bothered to actually pay attention while browsing through the Tk CB code, I would have seen the part about $Chatfield->see('end');
    Here is a nicer fix:
    if ($myposition == 1) { $Chatfield->yview(moveto=>$myposition); } else { $Chatfield->yview(moveto=>$mytopchar); # restore scroll pos }

    -dystrophy