GUI-unfriendliness (was Re: [vox-tech] "bring to front" X-window command)

Jonathan Stickel jjstickel at sbcglobal.net
Mon Oct 4 13:57:10 PDT 2004


Jeff Newmiller wrote:
> I detest programs designed to behave this way... from "helpful" cpu status
> displays to "Did you really want to quit this program?" dialog boxes to
> "Your Windows resources are running low" to "We are backing up your
> data... please wait" dialog boxes... they all suffer from either hubris or
> programmers who couldn't handle multitasking. Please stop trying to take
> control away from the users ... there has to be a way to avoid this
> unfriendly behavior in your software ... be creative and find it.
> 
<snip>

I appreciate your comments.  Let me explain a little bit more about my 
problem.  I am helping with a 3D visualization add-on (octaviz, built on 
VTK) for a numerical math package (octave).  Octave typically runs as a 
command-line interpreter in a shell window.  Graphing commands (and now 
visualization commands) generate new windows that contain 
graphs/graphics.  2D plots can be exported in some vectorized format, of 
course.  The 3D visualizations, however, are complex, opengl rendered 
objects with mouse interaction to rotate, zoom, etc.  Image "snapshots" 
of the windows are often the only way to get a desired export of the 
visualization.  There are functions in VTK to do just this, but the 
rendered window MUST be on top to work; otherwise, it exports whatever 
screen image is over the top of the VTK window.  And yes, I do consider 
this to be a feature problem in VTK, but I do not have the technical 
expertise nor time to make changes to VTK.

So... a quick and easy fix for me is to force the window on top before 
my export command saves the window as an image.  I did spend all weekend 
looking through Xlib programming docs to see if I could get around this 
some way, for example by keeping the window data in memory when it is 
covered up.  Another option is off-screen rendering, but that path isn't 
short either.

If anyone has further suggestions, I would be happy to hear them.  For 
now I /try/ to bring the window to the top and have a warning in the 
user docs about this.

Thanks,
Jonathan


More information about the vox-tech mailing list