octave-maintainers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Yet another GUI releated thought


From: Søren Hauberg
Subject: Re: Yet another GUI releated thought
Date: Thu, 08 May 2008 21:56:39 +0200

tor, 08 05 2008 kl. 12:15 -0400, skrev John W. Eaton:
> If the GUI runs in a separate thread and Octave is not thread safe,
> then how do you make the GUI responsive while Octave is off doing some
> calculation?

What would you want a GUI to do while Octave is calculating? Start
another parallel calculation? The GUI just needs to know that it Octave
is busy, such that it doesn't start any new calculations.

> |   Using this approach the GUI supports partial statements. It does not
> | support tab-completion and history searching, and similar. Such things
> | will have to be reimplemented in the GUI. I don't think that's much work
> | though. Are there any issues with this approach that I'm missing?
> 
> Right, so you want to reimplement all the features of GNU readline in
> your GUI::readline function?

Tab-completion is easy as that is implemented by Octave anyway. History
searching might be a bit more work. GNU readline also implements all
sorts of keyboard shortcuts (Ctrl-k deletes the rest of the current
line, etc), which all would have to be reimplemented. But thoughts on
this is simply, to not reimplement this -- people using a GUI would just
loose some functionality (the most commonly used operations could
obviously by implemented, but an entire clone of readline, would be
silly).
  The way I see it, if a GUI is simply a terminal with some extra stuff
around it (like the Matlab one), then I couldn't care less. However,
having the graphical capabilities opens up some new possibilities. Tab
completions and history searches could be displayed in drop-down menus
(is that the name?). Perhaps help texts could be displayed in HTML when
the user types 'help function_name'. But things like that really
requires that we don't use a terminal as the input -- it requires
something more general. The approach I suggested allows such things. It
would be quite some work, but at least it would be possible...

Søren



reply via email to

[Prev in Thread] Current Thread [Next in Thread]