Re: Re: Re: Locator Appearance mystery in LocatorPane
- To: mathgroup at smc.vnet.net
- Subject: [mg80104] Re: [mg80037] Re: [mg80009] Re: [mg79984] Locator Appearance mystery in LocatorPane
- From: John Fultz <jfultz at wolfram.com>
- Date: Sun, 12 Aug 2007 07:25:52 -0400 (EDT)
- Reply-to: jfultz at wolfram.com
A new Locator is only created if you didn't click on an existing one. If you click on an existing Locator, you're moving that Locator. Since, in the way youspecified it, the existing Locator takes up most or all of the entire graphics frame (i.e. everything in red is part of the Locator), all you're doing is moving the existing Locator. Sincerely, John Fultz jfultz at wolfram.com User Interface Group Wolfram Research, Inc. On Sat, 11 Aug 2007 02:07:01 -0400 (EDT), Murray Eisenberg wrote: > I'm still not sure I completely understand.... > > OK, as I can see, the locator is a large, framed, red rectangle when I use > > dot=Graphics[{PointSize[Medium],Point[{0,0}]},Background->Red, > Frame->True] > > but why, given the option LocatorAutoCreate->All, don't I then see a > bunch of large, framed, red rectangles when I click to create new > points? Is it just that the new "points" are really there but I cannot > see them, that I can only see the one "point" that's on top because I > created it last? > > > John Fultz wrote: >> On Fri, 10 Aug 2007 01:45:30 -0400 (EDT), Murray Eisenberg wrote: >>> Here's a LocatorPane inside a DynamicModule with a Locator initialized >>> >>> at the origin and where additional Locator points will be created at >>> mouse clicks: >>> >>> dot=Automatic; >>> >>> DynamicModule[{pts = {{0, 0}}}, >>> LocatorPane[Dynamic[pts], >>> Graphics[Point /@ pts], >>> Appearance -> dot, >>> LocatorAutoCreate -> All] >>> ] >>> >>> This works as expected. (The setting Automatic for Appearance is the >>> default.) >>> >>> Now change the definition of dot to: >>> >>> dot=Graphics[Disk[],ImageSize->5] >>> >>> Still OK. But, finally, change the defintion of dot to: >>> >>> Graphics[{PointSize[Medium],Point[{0,0}]}] >>> >>> Now it does NOT work as expected: Although the initialized points do >>> appear correctly, and a new dot appears at the first click in the >>> output, upon each additional click a new dot does not appear but, >>> instead, that one new dot moves to the location of the click. >>> >>> Diagnosis? Cure? >>> >> This is correct behavior. If you change dot to be... >> >> dot = Graphics[{PointSize[Medium], Point[{0, 0}]}, Background -> Red, >> Frame -> True] >> >> ...and play around with the result, the reason for the behavior should >> start to >> be come obvious. The default size of a Graphics[] object is the size >> of the >> graphic. And the entire graphics object represents the Locator, so all >> you're >> doing is moving the existing Locator (as you should correctly do when >> clicking >> directly on a Locator), rather than creating a new one. The only >> reason the >> Disk[] example worked as you expected is because you set the ImageSize >> to be so >> small, which affected the size of not just the disk, but the Locator >> itself. >> >> Sincerely, >> >> John Fultz >> jfultz at wolfram.com >> User Interface Group >> Wolfram Research, Inc.