octave-maintainers
[Top][All Lists]
Advanced

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

Re: GUI work (was: Graphical help browser)


From: John Swensen
Subject: Re: GUI work (was: Graphical help browser)
Date: Mon, 1 Dec 2008 17:37:33 -0500


On Dec 1, 2008, at 5:18 PM, Jordi Gutiérrez Hermoso wrote:

Can we discuss GUI development for Octave in the Octave mailing list?
Could we sanction some GUI as an official part of Octave so that we
don't have 8 aborted GUI attempts scattered over the past decade?

I hope so.

Now, I got around to compiling OctaveDE, and hit a few snags:

  1) The configure script couldn't find my WebKit installation, so I
  had to change WebKitGtk to webkit-1.0 in configure.ac
Yeah, I knew that was the case. It seems like different platforms and versions of webkit have their pkgconfig .pc files defined differently. Since the help browser is not very well developed (and because I plan on incorporating Soren's at some point), I simply added a configure flag to cut it out.



  2) The #include directive assumes that <WebKit/webkit.h> is the
  location of this header file whereas in my Debian install it is in
  <webkit/webkit.h>, so I changed it in HelpWindow.h

  3) I needed to install Xapian and GLUT development packages
  but the configure script didn't check for them.
This had something to do with mkoctfile. I couldn't get my IDE to compile after the OpenGL backend was added to Octave without linking against OpenGL libraries.



  4) There is some code under an HAVE_OCTAVE_300 macro that doesn't
  compile in server.cpp, so I #if 0'ed it.
For both webkit and the octave version, there are configure options
--without-octave300   or --with-octave300
  --without-webkit   or -with-webkit



They were all easy to fix, at least for Debian, cross-platform
compilation be damned. ;-) Now it seems to work. I might think of
moving it to CMake, because autotools compilation seems really arcane
to me, and I don't like having to learn four different macro languages
to accomplish one task.

I tried it out briefly... it looks nicer than I thought it would,
although the paging problem seems to persist here. It seems that
when Octave pages to less, then less doesn't bind the input, so the
Octave server gets stuck at this point (unless I did something wrong).

There is actually a fix for that, but I probably accidentally checked in the unfixed version (which is better for debugging). For the pager to work properly, in the main.cpp file uncomment the #ifndef __WIN32__ and comment out the #if 0. This ends up launching two processes, one for the UI and one for Octave. I can't remember why I had to do this, but it was based on an answer JWE gave me about how to make it work.



2008/11/27 John Swensen <address@hidden>:
As for the worksheet interface, I am assuming you mean something like
Mathematica or Maple where you can input a bunch of stuff, change some value
in the middle, then re-evaluate the entire worksheet?

Well, there is more than that. You resolve the paging problem by
having the Octave output fit into reasonably-sized fields within the
worksheet interface. There is no longer a need to keep a command
history in a separate window, since the previous commands are in past
input fields. You could even fit graphical output into the worksheet
interface instead of opening separate windows, which always seemed to
me like e a mostly useless design choice of the Matlab GUI. It's just
an overall more complete integration and slightly useful of a GUI that
would even make me consider switching to it instead of Emacs (and if
we are using GTK+, I could even have Emacs-like keybindings as I do on
Firefox and Xchat and elsewhere by choosing the Emacs keybinding
theme).

My intent has always been to make an imitation IDE to make it easier
on new users.

New users just seem to be scared of white text on black backgrounds
and "DOS applications". I don't think we have to replicate the design
errors of the Matlab GUI in order to appease new users.

- Jordi G. H.

I am indifferent to user input, but I don't have the time to invest in a complete rewrite of the Octave input and output mechanisms. That sounds like an awfully large task and probably more involved that I am capable of taking on. It is also very different than my normal mode of operation for Matlab/Octave.

John Swensen





reply via email to

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