[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: GUI design
From: |
John W. Eaton |
Subject: |
Re: GUI design |
Date: |
Tue, 27 Mar 2012 15:59:11 -0400 |
Octave will have an IDE, so there is no point in arguing about whether
an IDE is good or bad. In 2012, novice users expect that a program
like Octave will have a GUI/IDE and they are confused when it does
not. There is no reason I can think of that we should not provide
some kind of IDE. These days, the tools to build one are sufficiently
mature that it should not be that much effort.
The IDE will also be optional, both as a build-time option and a
run-time option. It must remain possible to build Octave without an
IDE so that people can continue to build Octave on systems that lack
the necessary dependencies, or so that the size of Octave and the
difficulty of building it may be minimized when using Octave on
systems that do not need the IDE. Similarly, even if Octave is built
with the IDE enabled, it must be possible to run it with the IDE
disabled. That way, running Octave in a terminal session will still
be possible, just as it is now. This means that there must be a clear
separation between the IDE and the core of Octave. We will not embed
calls to GUI toolkit functions throughout the core of Octave. We
should also not assume that the GUI toolkit we choose now will be the
one that will be used forever.
The following features are essential:
* An area for the main command window that presents the Octave
prompt and displays the output from commands, just as you
currently see when running Octave in a terminal window.
The command line in this window must have GNU readline
command-line editing. If this can't be accomplished using a
terminal widget for the GUI toolkit that we choose to use, then
I've previously shown how we can get the same functionality
without a terminal widget (though there may be some problems yet
to be solved regarding what to do about the pager and other
external programs that expect to run inside a terminal). See the
following thread for more information:
https://mailman.cae.wisc.edu/pipermail/octave-maintainers/2012-January/026739.html
* An area to display command history. It should be possible to
select and paste previous commands from the history window into
the command window.
* An area to display the contents of the current workspace. It
should be possible to display the contents of variables from this
list.
* Octave's doc command should display a formatted version of the
manual in a separate window. It is essential that this window be
visible simultaneously with the command window. We should not
use a tabbed interface for this feature. It should be possible to
choose which program is used to browse the documentation.
* When there is an error running an Octave script, an editor should
pop up and place the cursor at the line of the error.
* You should be able to interact with the debugger through the
editor.
* It is absolutely essential that the choice of editor is
configurable. It must be possible to use Emacs for this purpose.
* The windows used to display the OpenGL-based graphics must use the
same GUI toolkit that we use for the rest of the IDE.
* Functions like uigetfile should use the same GUI toolkit that we
use for the IDE.
The Octave IDE will be used by novices. It is NOT the place for UI
innovation. We should use GUI/IDE features that are proven, familiar,
and easy to work with. We do not need dockable widgets. The ability
to change the relative sizes of the command, workspace, and history
windows would be useful, but we do not need to be able to rearrange
their locations within the main window. Tabbed interfaces will not be
used. Octave's IDE does not need a built-in IRC client, and will
not include one.
Since people seem to like it, following the design of "GUI Octave"
makes sense to me. But it is not necessary to include every feature
of that interface in the first version of Octave's IDE. It would be
far better to have just the features above working reliably than to
have many more features that are only partially implemented or buggy.
Comments?
jwe
- Re: GUI design, (continued)
- Re: GUI design, Daniel J Sebald, 2012/03/23
- Re: [OctDev] GUI design, Jordi Gutiérrez Hermoso, 2012/03/25
- Re: [OctDev] GUI design, Daniel J Sebald, 2012/03/25
- Re: [OctDev] GUI design, Richard Crozier, 2012/03/25
- Re: [OctDev] GUI design, Daniel J Sebald, 2012/03/25
- Re: [OctDev] GUI design, Richard Crozier, 2012/03/25
- Re: GUI design,
John W. Eaton <=
- Re: GUI design, Jacob Dawid, 2012/03/27
- Re: GUI design, Søren Hauberg, 2012/03/28
- Re: GUI design, Michael Goffioul, 2012/03/28
- Re: GUI design, John W. Eaton, 2012/03/28
- Re: GUI design, Michael Goffioul, 2012/03/28
- Re: GUI design, Jordi Gutiérrez Hermoso, 2012/03/28
- Re: GUI design, Michael Goffioul, 2012/03/27
- Re: GUI design, Daniel J Sebald, 2012/03/28
- Re: GUI design, Richard Crozier, 2012/03/28
- Re: GUI design, Daniel J Sebald, 2012/03/28