octave-maintainers
[Top][All Lists]
Advanced

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

Re: GUI design


From: Daniel J Sebald
Subject: Re: GUI design
Date: Wed, 28 Mar 2012 03:55:48 -0500
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.24) Gecko/20111108 Fedora/3.1.16-1.fc14 Thunderbird/3.1.16

On 03/27/2012 04:28 PM, Michael Goffioul wrote:
On Tue, Mar 27, 2012 at 8:59 PM, John W. Eaton<address@hidden>  wrote:
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

I'm not going to argue forever about this, so I'll just explain my
opinion once...

I'm not desperately pushing for dockable widgets, but from my
experience I would definitely start with a flexible window arrangement
system. This will define the overall framework for the entire IDE. If
you don't get it right from the beginning, or go for the more
straightforward solution of a static window arrangement, it'll be more
difficult to move away from it later on. I think it's worth spending
time on that from the start.

The problem I see with a more static layout is that users will most
likely want to change it. Everybody has his own opinion about how
window should be arranged, what's important, what should be always
visible, what is never used... A generic dockable system[1] provides
the flexibility to make everybody happy, as it's entirely under the
control of the user.

Guess I'm with Michael on this one. I don't see the point of aiming for GUI Octave. The author did a nice job, but the features are somewhat limited. If one wants a simple IDE for Octave, they've got it--GUI Octave. The only substance to John's argument is that Octave having it's own IDE will mean that it will automatically be bundled with the Octave package.

To me, an IDE has to bring something to the table. It has to convey information and organize one's work in a way that makes the user more productive. And the IDE is rather unrestricted. Rather than limiting one's self to GUI Octave or even Mathworks' IDE, think more along the lines of not only common features, but new features beyond Mathworks IDE and the computer environment in which one will be working. Here are some thoughts and this by no means is the limit of things of substance.

* As Michael says, people like to customize things to there own preferences. Today monitors are much bigger and wider aspect ratio than in days past. Or, two monitors is quite common these days. So start out building the shell of the IDE, non function but with titles for what everything is. Then imagine how people are going to use it. Will they want to pull tabs off and move sections to a different part of the screen or onto the second monitor?

* Are there convenient ways to hide and organize windows? Sometimes I get so many windows open on my desktop that I spend a lot of time surfing around trying to find the right plot or whatnot. Could there be a feature that condenses the list of figures as a sort of table of contents or summary? Say a menu item lists all the figures with titles and as the mouse is placed over the top of a figure name to the side pops up thumbnail of the figure. Or instead of a list, maybe a grid layout of all the figures and clicking on the thumbnail pulls up the figure plot in full size.

* Honestly, the biggest feature I would guess that people (other than me) are looking for is a manually modifiable figure. E.g., clicking on the figure elements, or having a table of the figure's properties that can be modified by hand. I would argue that to make such a thing worthwhile, there needs to be a feature to save everything about that figure to a file and a way to retrieve that information from an existing file. That at least makes the whole process a bit less ephemeral, so as to not spend two hours tweaking a plot just to lose all that work once the figure is closed.

* GUI Octave has a variable explorer. I suppose that is worthwhile, but often just plotting the data is easier. However, I could see the variable editor being extended to cells. Exploring cells and structures can be kind of convoluted. Maybe a tree graph is useful for cells and structures.

* A debugger is something a lot of people might like, especially for inexperienced sorts who might make rudimentary mistakes that produce results not making much sense. When concentrating on the code in the debugger, it is a bit of extra motion to keep glancing over to a variable explorer. What would be nice is stepping through the code and being able to put the mouse over the top of a variable in the editor window and a dialogue pops up showing the contents of that variable.

* If running under a two monitor system, is there a way a figure window could be enlarged to fill the screen, but only the screen as far as the first or second monitor. That would be nice--a quick way of making the plot nice and big on the second monitor.

* How about a codec window? I.e., some way of playing signals appearing in a plot codec window to the audio system. Stop/start buttons, etc. All the common features.

* Same thing for video codecs. Could there be a way of playing a series of processed images in a plot window?

* How about if one were to drag a picture image from another program (say GIMP or from a browser) into the IDE or paste an image into the IDE from a clipboard and that image is automatically loaded into the workspace? Say upon doing that a little dialog window pops up with a default variable for that image, say x1, and the option is for the user to type in a new variable name for that image.

These are the sorts of things that make an IDE worth having: organization, shortcuts, displaying information in a quickly comprehendible way.

Dan



Michael.

[1]: by this, I really mean a system where windows can be docked,
popped out, split horizontally or vertically or merged into tabs.



reply via email to

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