[GRASS-dev] 'g.gui wxpython' won't work in wingrass as wxgui is a
shell script
Michael Barton
michael.barton at asu.edu
Thu Feb 28 10:18:47 EST 2008
On Feb 28, 2008, at 2:47 AM, grass-dev-request at lists.osgeo.org wrote:
> Date: Thu, 28 Feb 2008 10:25:43 +0100
> From: Moritz Lennert <mlennert at club.worldonline.be>
> Subject: Re: [GRASS-dev] 'g.gui wxpython' won't work in wingrass as
> wxgui is a shell script
> To: Martin Landa <landa.martin at gmail.com>
> Cc: Glynn Clements <glynn at gclements.plus.com>, GRASS devel
> <grass-dev at grass.itc.it>
> Message-ID: <47C67E17.8070305 at club.worldonline.be>
> Content-Type: text/plain; charset=ISO-8859-1; format=flowed
>
> On 27/02/08 21:05, Martin Landa wrote:
>> Hi,
>>
>> 2008/2/21, Glynn Clements <glynn at gclements.plus.com>:
>>
>>> Moritz Lennert wrote:
>>>> as wxgui is a shell script, g.gui wxpython (which does:
>>>>
>>>> else if (strcmp(type->answer, "wxpython") == 0) {
>>>> sprintf (progname, "%s/etc/wxpython/scripts/wxgui",
>>>> G_gisbase());
>>>> if (rc_file->answer) {
>>>> G_spawn(progname, "wxgui", rc_file->answer, NULL);
>>>> )
>>>>
>>>> will not work.
>>
>> since gis.m and d.m are also shell scripts, g.gui tcltk|oldtcktk will
>> not work too(?)
>
> I have never tried d.m, but for gis.m there is a gis.m.bat replacement
> [1] which directly call the tcltk code.
>
>
>> There is one problem, when you run `g.gui wxpython`, the program is
>> waiting for thread termination. So you cannot use xterm when wxGUI is
>> running. I am not sure how to fix it since I am not so familiar with
>> G_spawn*.
>
> I guess you will have to fork before you G_spawn ?
>
> Moritz
>
> [1]
> http://trac.osgeo.org/grass/browser/grass/trunk/gui/tcltk/gis.m/
> gis.m.bat
I thought the whole reason to have a C-based g.gui was to avoid the
use of *nix specific bash shell scripts for launching GUI's. That way
they would work on all systems without the hack of having to rewrite
*.sh as a *.bat. Why can't the C-code just do the job of the old
shell scripts and directly launch the GUI code in TclTk or wxPython.
The shell scripts are only a convenience anyway, as these could be
launched from the GRASS command line with a bit more complicated
command--e.g., python "$GISBASE/etc/wxpython/wxgui.py" &
The name of the initialization module for each GUI (e.g., wxguy.py in
wxPython) could be set to a variable in init.sh (or its successor) to
avoid hard coding it in C.
Michael
More information about the grass-dev
mailing list