Maxima - new GUI



> Yes. I should consider whether to abstract the View (Qt toolkit) from the
> Controller, as currently they are tightly bound. This obviously adds an
> overhead to future development so I need to weigh it up.
Since widget controllers are more a sort of glue, they are often hidden in the 
event system leading to the document-view-model. I would not care too much 
about them. In contrast, I would strongly encourage considering the CAS 
system as a controller.

> My current thinking is that for a notebook presentation I would use an
> external compositing software such as KWord for example (and I know it has
> its problems), and Kayali would provide the rendered data (equation
> visualisation, plot png etc) for equations, graphs etc embedded in the
> KWord document.
>
> Is it the place of a CAS GUI to do document compositing? This will involve
> a lot of wheel reinvention.

My favourite notebook model would be a composition of:
- XHTML with MathML for the classical document parts
- messages to and from maxima (e.g. input, output, graphic objects)
- some grouping elements for the document structure (analog to the section 
grouping of the macsyma notebooks)

There is really no unnecessary wheel reinvention involved, since you can use 
existing DOM implementations for the model. Also, you can use existing 
browser views for the classical document parts, which can even be used to 
aggregate a view for the maxima messages. Other existing views  (e.g. 
mathplotlib) may be utilized for maxima messages that are plots.

For a first-time implementation in Qt, I would certainly simplify the above 
specification by using QTextEdit rich text for the classical document parts 
or even plain fix-font text. QDomDocument can still be used for the model. I 
would also implement very plain views, e.g. simply displaying the maxima 
interface language (1D-output in this case) without further formatting and 
using static images for plots. However, I would take care of the custom parts 
of the model (e.g., what is the model of a maxima plot?). I would also 
provide the possiblity to export the model to a maxima batch file, i.e. 
stripping output and putting the classical document parts into comments. This 
way, early adaptors won't loose their work regardless of future changes.

One thing that kept me from implementing this is the fact that there is no 
(documented) interface to a maxima server with a language that fulfills my 
requirements. I hope your development will directly and indirectly contribute 
towards such an interface. I wish you all the best!

Michael