On Tue, 2005-11-29 at 20:50 +0000, Tony Nelson wrote: > In article <[EMAIL PROTECTED]>, > Jeremy Moles <[EMAIL PROTECTED]> wrote: > > > I'm working on a project using ncurses w/ Python. As an aside, I > > implemented addchstr in the cursesmodule.c file in Python SVN, if anyone > > wants me to try and get that made permanent. > > > > AT ANY RATE... > > > > I was wondering--and this is more a general curses question rather than > > a Python one, but I know there are some old-timers here who have made > > curses obey before--is there a way to "repaint" a portion of screen > > without stealing the "cursor?" That is: > > > > I have a focus "wheel" of sorts that allows the user to do input on > > various wigets and windows and whatnot. However, if I want to quickly > > call addstr somewhere else in the application I have to: > > > > 1. Store the YX coords of the cursor currently > > 2. Use the cursor in the "current" action > > 3. Restore the old cursor location > > > > I know there are ways around this as I have seen curses apps that, for > > example, have a clock that updates every second without stealing > > "focus." > > > > I tried implementing/using addchstr (mentioned above) to no success. > > > > Any ideas? Is this just the plain wrong place to ask this? :) > > I've only tried to read the Python Library Curses docs, but I thought > that the Window object method addstr() would do what you want.
Perhaps I should have been more specific. :) addstr (or any of it's brothers, even those bound to a subwin instance) write values to an internal buffer/object that then gets flipped (refreshed()) onto the physical screen. However. All of the routines I can find in the ncurses library want to take control of the "cursor" object. That is: they either want to advance it's position (addstr) or not (addchstr), but they both certainly grab "control" of it; at least, visually. Basically what I'm looking for is a way to refresh a portion of a curses-controlled "window" without affecting the current location of the cursor or having to manually move it and move it back. -- http://mail.python.org/mailman/listinfo/python-list