[GRASS-dev] how to start wx vdigit?
William Kyngesburye
woklist at kyngchaos.com
Sun Mar 9 14:56:51 EDT 2008
OK, here's what I got:
I wanted to start with an empty vector map, so I tried to create one
from the GUI. Error in console:
Traceback (most recent call last):
File "/Applications/GRASS-6.3.app/Contents/MacOS/etc/wxpython/
wxgui.py", line 433, in OnMenuCmd
menuform.GUI().ParseCommand(cmd, parentframe=self)
File "/Applications/GRASS-6.3.app/Contents/MacOS/etc/wxpython/
gui_modules/menuform.py", line 1390, in ParseCommand
get_dcmd=get_dcmd, layer=layer)
File "/Applications/GRASS-6.3.app/Contents/MacOS/etc/wxpython/
gui_modules/menuform.py", line 608, in __init__
mainFrame=self)
File "/Applications/GRASS-6.3.app/Contents/MacOS/etc/wxpython/
gui_modules/menuform.py", line 1050, in __init__
txt3.SetValue(p['value']) # parameter previously set
File "/BinaryCache/wxWidgets/wxWidgets-11~57/Root/System/Library/
Frameworks/Python.framework/Versions/2.5/Extras/lib/python/wx-2.8-mac-
unicode/wx/_controls.py", line 2249, in SetValue
TypeError: in method 'SpinCtrl_SetValue', expected argument 2 of type
'int'
So I used v.edit from the Terminal to create one.
Now, added to the GUI display list, right-click (yes, the toolbar
combo box is not there), start editing, and I get a dialog:
"
Unable to initialize display driver, see README file for more info.
Details: 'NoneType' object has no attribute 'OpenMap' (dynamic module
does not define init function (init_grass6_wxvdigit))
"
It looks like the vdigit toolbar appears, and stays up, but the
display list contextual menu still says "start editing" (stop is
disabled), so it's probably not fully initialized, as the error says.
I'm not sure if this is from the way I setup my test build or
something else.
Here is what I did to get it compiled: since _gdi_.so is technically
an extension to [wx]Python, I figure that it should get loaded (maybe
automatically?) by wxPython. So instead of directly linking it into
vdigit, I used an OSX linker flag "-undefined dynamic_lookup" to tell
the linker that the gdi.so symbols will be found at runtime.
But, I'm not sure it gdi is guaranteed to be loaded. Maybe it needs
something in the vdigit code to trigger loading the extension,
equivalent to import in Python code? Or maybe import it in
grass6_wxvdigit.py, before importing _grass6_wxvdigit.so?
On Mar 9, 2008, at 1:26 PM, Martin Landa wrote:
> Hi,
>
> there currently two ways
>
> 1) add vector map layer into the layer tree, right click and from
> contextual menu choose 'Start editing'
>
> 2) select in Map display window toolbar 'Digitize' (the last tool in
> the toolbar), then from enabled vdigit toolbar choose vector map layer
> you want to edit (this map must be present the current layer tree). I
> remember there was bug on Mac connected to wxComboBox inside wxToolbar
> instance. So maybe you cannot see these comboboxes in the toolbars.
> Then first way should work for you.
>
> Martin
>
-----
William Kyngesburye <kyngchaos*at*kyngchaos*dot*com>
http://www.kyngchaos.com/
"Time is an illusion - lunchtime doubly so."
- Ford Prefect
More information about the grass-dev
mailing list