I have a strange issue with Floatcanvas.
I have the following code, this is not a complete example, since the
codebase is to big to be posted here:
[code]
def arrange_shapes_in_order(self, obj):
""""""
# Get the current canvas.
canv = self.p2.GetPage(self.p2.GetSelection())
print canv
canv.ClearAll()
print canv.HitDict # this is now empty.
# Add all shapes to the canvas.
for item in obj.objects: # there are two objects. So this is done
twice.
print '--', item.object
canv.AddObject(item.object)
item.object.Bind(FloatCanvas.EVT_FC_LEFT_DOWN, self.evt_object_hit)
print canv._DrawList # Have two objects when done.
print canv.HitDict # After the last run, this should have both
objects, but only have the last one.
canv.Draw(True)
[/code]
This will give the following printout. The HitDict print should have
two objects, but it only have the last one. Why?
If I remove the canv.ClearAll() and add canv._DrawList = [],
canv.HitDict = None, it works just fine. The I get the second output,
which is correct.
A complete example that works just fine even with the ClearAll()
function used is found at http://www.copypastecode.com/13778/ , have
not been able to duplicate the strange behavior I have, so there must
be something in my code that make the Bind call overwrite the list
instead of add to it. But what. Any ideas?
[code]
<wx.lib.floatcanvas.FloatCanvas.FloatCanvas; proxy of <Swig Object of
type 'wxPanel *' at 0x1e19920> >
None
-- <builder_defaults.MovingBitmap instance at 0x1a3a440>
[<builder_defaults.MovingBitmap instance at 0x1a3a440>]
{10315: {(0, 0, 1): <builder_defaults.MovingBitmap instance at
0x1a3a440>}, 10316: {}, 10317: {}, 10318: {}, 10319: {}, 10320: {},
10321: {}, 10322: {}, 10323: {}, 10326: {}, 10327: {}}
-- <builder_defaults.MovingBitmap instance at 0x1a3a5f0>
[<builder_defaults.MovingBitmap instance at 0x1a3a440>,
<builder_defaults.MovingBitmap instance at 0x1a3a5f0>]
{10315: {(0, 0, 1): <builder_defaults.MovingBitmap instance at
0x1a3a5f0>}, 10316: {}, 10317: {}, 10318: {}, 10319: {}, 10320: {},
10321: {}, 10322: {}, 10323: {}, 10326: {}, 10327: {}}
[/code]
[code]
<wx.lib.floatcanvas.FloatCanvas.FloatCanvas; proxy of <Swig Object of
type 'wxPanel *' at 0x2939920> >
None
-- <builder_defaults.MovingBitmap instance at 0x262a440>
[<builder_defaults.MovingBitmap instance at 0x262a440>]
{10315: {(0, 0, 1): <builder_defaults.MovingBitmap instance at
0x262a440>}, 10316: {}, 10317: {}, 10318: {}, 10319: {}, 10320: {},
10321: {}, 10322: {}, 10323: {}, 10326: {}, 10327: {}}
-- <builder_defaults.MovingBitmap instance at 0x262a5f0>
[<builder_defaults.MovingBitmap instance at 0x262a440>,
<builder_defaults.MovingBitmap instance at 0x262a5f0>]
{10315: {(0, 0, 1): <builder_defaults.MovingBitmap instance at
0x262a440>, (0, 0, 2): <builder_defaults.MovingBitmap instance at
0x262a5f0>}, 10316: {}, 10317: {}, 10318: {}, 10319: {}, 10320: {},
10321: {}, 10322: {}, 10323: {}, 10326: {}, 10327: {}}
[/code]