|
From: | Ben Abbott |
Subject: | Strange handle behavior (was Re: [Changeset]: Re: cla() ?) |
Date: | Tue, 07 Oct 2008 22:06:09 -0400 |
On Oct 7, 2008, at 5:43 PM, Ben Abbott wrote:
On Oct 7, 2008, at 9:10 AM, Michael Goffioul wrote:While we're talking about __go_delete__, does anybody remember what was the idea behind removing an object from its parent's children in __go_delete__, instead of gh_manager::free? This makes life slighlty more complex if you want to delete an object from C++, where you would typically use gh_manager::free, but you then have to remove the child manually from its parent's children. I don't think I wrote that part of the code, and I can't figure out why it is written that way. Michael.MIght what describe be responsible for why the code below does not return the axis limits to its default values?octave:21> figure(1) octave:22> clf octave:23> axis ans = 0 1 0 1 0 1 octave:24> plot(1:10) octave:25> text(5,5,'some text') octave:26> axis ans = 0 10 0 10 -1 1 octave:27> delete (get(gca,'children')) octave:28> axis auto octave:29> axis ans = 0 10 0 10 -1 1
Some more strange behavior. I wrote a trivial script called "test_delete.m", which contains the lines below.
---------------------- clear all figure (1) clf plot (1:10) hc = get (gca, 'children'); delete (hc) axis auto p = get (hc) ---------------------- When I run it I get ... octave:30> test_delete error: get: invalid handle (= -6.17358) error: called from:error: /Users/bpabbott/Development/Octave Toolbox/cla/test_cla.m at line -1, column -1
With the exception of the x/y limits not changing, everything looks ok. However, if I then manually type the last line ...
octave:30> p = get(hc) p = { beingdeleted = off busyaction = queue buttondownfcn = [](0x0) children = [](0x0) clipping = on createfcn = [](0x0) deletefcn = [](0x0) handlevisibility = on hittest = on interruptible = on parent = -7.3210 selected = off selectionhighlight = on tag = type = text userdata = [](0x0) visible = on __modified__ = on uicontextmenu = [](0x0) string = units = data position = 0 0 0 rotation = 0 horizontalalignment = left color = 0 0 0 fontname = Helvetica fontsize = 10 fontangle = normal fontweight = normal interpreter = tex backgroundcolor = none displayname = edgecolor = none erasemode = normal editing = off fontunits = points linestyle = - linewidth = 0.50000 margin = 1 verticalalignment = middle } If I manually type each line then all appears to work as expected.I have no idea what is happening here, but thought the example might help someone else track down the problem.
Ben
[Prev in Thread] | Current Thread | [Next in Thread] |