This is an unordered list of things that I'm thinking about doing with MGv.
- I'm considering moving to GNU autoconf (mostly to get libtool
so I can portably make wlib a shared library) but I'll have to
see if I can make autoconf as convenient to use as my GNU makefiles.
- I would like to increase the usefulness of MGv for PDF files.
All this really means is that I have to build a PDF parser that
can produce something like the DSC structure that is currently
used for DSC conformant PostScript files.
I do have the official PDF book and it doesn't look like it will
be that hard to get the DSC information.
If you use PDF a lot, I'd recommend using
xpdf or
Adobe Acroread instead of MGv.
- Resizing a zoom window should expand the zoomed area rather than
stretching it; effectively, this would allow you to alter the
zoom reticule after the zoom has popped up.
The GHOSTVIEW window property
(see
The GHOSTVIEW Property) has
four optional values that may be of assistance here.
- The DSC scanner in
dsc.c
needs to be rewritten and expanded to
handle PDF files.
The current scanner (which was borrowed from Ghostview 1.5) works
but is rather messy and has problems with the Special
page order and Mac PostScript files (i.e. those with just a carriage
return as a line terminator) so this might be a good excuse to
replace it.
- Switching to an XmMainWindow widget might be a good idea but
writing my own simpler main window widget would probably be a better
idea.
The only utility of this modification would be proper resize
handling for the menu bar.
In order to get the menu bar to wrap around when the window gets
too thin, you have to set its XmNcolumns resource; however,
you need to be directly involved in the geometry management in
order to determine what value XmNcolumns should have.
Hence, you need to be a manager widget to properly resize a menu bar
without resorting to kludges.
- I would like to implement an emulator for SGI's GUI schemes (the SGI
schemes mechanism provides nice spacing, colors, and fonts which
can be changed with a single resource setting). The
tools/standard.ad
file contains a rough attempt at matching
the spacing and font settings of a scheme but it is primitive.
Setting the spacing and colors would be fairly easy (just read in
a file and stuff some extra strings into the resource database
before any widgets get created). The fonts are more difficult
to implement
since they use a virtual font naming system (you say
"blah*fontList: SGI_DYNAMIC ObliqueLabelFont
"
and you get
an italic font of some kind); in order to make this work, I'll have
to replace the String to FontList type converter but the replacement
cannot be made until at least one Motif widget has been created.
I'll probably end up borrowing the converter from LessTif and
installing it after creating and destroying a sacrificial XmLabel.
While I'm at it, I might try and add backgroundPixmap settings
to the schemes so you can get the enlightened look.
- The wlib library needs a simple resource persistence interface.
This should be pretty easy once I have whatever to String
type converters for the various resources. Any hacking towards
this end might also yield a reasonable way to build Options
dialogs for modifying the application resources.
- I like the panning in Acroread (you grab the page and move it
around with the mouse) so I think I'll add it to MGv some time.
- The next release will probably drop the automatic scrolling in
the main scrolled window; moving to application defined scrolling
will offer better control over the scrolling in general. This should
make the Acroread panning easier, smooth scrolling better, and I
could make the scrollbar increment more sensible. While I'm hacking
the scrolling code I'll have to figure out some simple way to
indicate how many more attempts are needed before magic scrolling
moves to the next page (maybe I could cycle the colors--dark to
light--on the scrollbar).
- I'm starting to get sick of the xdvi interface so I may try and
work in some DVI support sometime in the future. This will require
some non-trivial source hacking.
- Adding compression for saved files might be a nice (and fairly
simple) addition. I'll probably add compressZ and compressGZ
resources for this and check the requested file name to see which
kind of compression should be used.
- I have had a request for a toolbar so I'll probably add one even
though I personally hate toolbars. When I add a toolbar, I'll
make sure it is fully user configurable.
- The mgvScroll action should have a percentage argument (with
the scrollPercentage resource as a default).