Steps toward removing viewer glish                             November 2004     David King



Re-creating the aips++ viewer without glish is a large task, as we all know.  I think it makes sense to idenfity the various tasks and come up with an order for tackling them.

As I see it, a first major milestone to work toward is the creation of a barebones standalone glishless viewer, with approximate capabilities only of the current quickviewer.  (To try the quickviewer, type 'aqview <filename>' in a window initialized for aips++).  This provides a raster display of a single image file, with default labelling, colormap, and coordinate axes.  There are fixed mouse buttons for zoom and colormap fiddling, a slider for channel number selection, and a position tracking display. 

From there, additional capabilities should be prioritized (with SSG/NAUG input) and added.  Farther below is a list of the major additional capabilities that I am aware of.

Getting to the barebones stage involves:
In the meantime, I must plan a functional interface for viewer capabilities (based on the old glish one; hopefully simpler), and also learn the new framework, i.e.,  how these functions and their parameters (particularly the record data) are to be sent through it.

Also in the meantime, I think we should keep an eye on RVS, and stay in touch with our Aussie colleagues in this area.  It is not too late to hedge our bets in this area, although that window will close as we invest more effort in C++ gui development.  Pros and cons of RVS as I see it now:

Cons:
Pros:

So... Again, I think the best plan for the present is to stay in touch with developments and get to the point where we can evaluate both client and server in RVS.  Meanwhile, however, I think we should proceed with prototyping a barebones viewer in a C++ widgetset.







Additional major viewer Functionality -- going beyond 'barebones'
It's important to realize that most of these current viewer capabilities correspond to separate sections of glish code, and will of course require recoding in a new system as well.
















This is probably a good place to mention that its msplot's still-used plot mode (along with many other applications) make use of the glishtk pgplot widget

While not a viewer application, the pgplot widget was built similarly to the display library (i.e., its canvas widget), and presents similar problems of conversion.  As with the display library, it attaches itself to the glishtk widgetserver process, essentially becoming part of that service.  It allows glish scripts to embed the widget in higher-level pgplot 'tools' or other plot windows, and to control the widget via pgplot commands sent over the glish-bus 'framework'.   As with the viewer, pgplot use in a new framework would be confined to the process where its guis are built, not available across the framework.


Dependencies on external glish code / services.  The viewer will still want to call many of these across a new framework.