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: John Swensen
Subject: Re: Yet another GUI releated thought
Date: Wed, 7 May 2008 15:44:57 -0400


On May 7, 2008, at 3:26 PM, Søren Hauberg wrote:

Hi All,
 I'm still not convinced that it is necessary to make Octave thread
safe or similar complicated things to provide a graphical interface to
Octave. I don't really understand the input handling in Octave, so this
has been developed in a "Hmmm, I wonder what happens if I press this
button..." style.
 What I have done is the following:
In 'src/input.cc' I have added:

 // TRUE if the GUI is being used
 bool using_gui = true;

Then later (same file) I have changed the function 'gnu_readline' so it
reads

 if (!using_gui)
   retval = command_editor::readline (s, eof);
 else
   retval = GUI::readline (s, eof);

This is probably the wrong place to do this, but it seems to work
(haven't tested much, though). The function 'GUI::readline' returns when
the user pressed Return in the GUI. The GUI is being started in
'octave_main' in 'src/octave.cc' in a separate thread.
 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?

Søren


I don't think it is necessary to make Octave "explicitly" thread-safe either. In fact, the current method in OctaveDE of registering a function with the Readline idle event function seems to provide all the thread-safety my IDE needs. Now, when you say GUI, maybe you are referring to creating uicontrol objects and handling their callback functions.

John Swensen


reply via email to

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