[squeak-dev] continuous display of cursor position

Ken G. Brown kbrown at mac.com
Fri Jan 4 21:45:12 UTC 2013


On 2013-01-04, at 1:57 AM, Edgar J. De Cleene wrote:

> 
> 
> 
> On 1/3/13 11:50 PM, "Ralph Boland" <rpboland at gmail.com> wrote:
> 
>> I would like to create a small TextMorph that continuously displays the
>> position
>> of the cursor.  To do this I need to write something of the form:
>> 
>> true whileTrue: [
>>    x := self getCursorPosition.
>>    textMorph display: x.
>>    self sleep:  10   "milliseconds"]
>> 
>> I plan to use this when investigating some morph that is not displaying the
>> way
>> I expect it to.
>> 
>> Can someone provide me with hints as how to properly do this or point
>> me to a package that already does this or something similar?
>> 
>> I have searched the code and the Internet.  I found that "getCursorPosition"
>> can be implemented as:
>> 
>>     "World activeHand position"
>> 
>> I can also figure out how to build the Morph I need to display the
>> Cursor position.
>> 
>> I don't know how to implement "sleep:"
>> I am not sure if I should use an infinite loop as I have.
>> 
>> An alternative to the TextMorph I want is to construct a cursor that
>> continuously displays its
>> position but I prefer my original plan.
>> 
>> Any help much appreciated.
>> 
>> Ralph Boland
>> 
> 
> See the attached, I use daily
> 
> Evaluate InfoMorph openInWorld or InfoMorph openInHand
> 
> Cheers
> 
> Edgar

Have you been able to run this in the latest Squeak4.4-12327 on Cog 2640?
On my Mac, InfoMorph openInWorld fails:

InfoMorph class(Object)>>doesNotUnderstand: #openInWorld
	Receiver: InfoMorph
	Arguments and temporary variables: 
		aMessage: 	openInWorld
		exception: 	MessageNotUnderstood: InfoMorph class>>openInWorld
		resumeValue: 	nil
	Receiver's instance variables: 
		superclass: 	StringMorph
		methodDict: 	a MethodDictionary(#cambio:->(InfoMorph>>#cambio: "a CompiledMethod...etc...
		format: 	150
		instanceVariables: 	nil
		organization: 	('step' step stepTime)
('as yet unclassified' cambio:)

		subclasses: 	nil
		name: 	#InfoMorph
		classPool: 	nil
		sharedPools: 	nil
		environment: 	Smalltalk globals "a SystemDictionary with lots of globals"
		category: 	#SqueakRos

Ken G. Brown


> 
[see attached file: InfoMorph.st]
-------------- next part --------------
'From Squeak4.2 of 13 June 2011 [latest update: #11599] on 16 April 2012 at 9:31 am'!
StringMorph subclass: #InfoMorph
	instanceVariableNames: ''
	classVariableNames: ''
	poolDictionaries: ''
	category: 'SqueakRos'!


!InfoMorph methodsFor: 'step' stamp: 'edc 5/12/2005 16:06'!
step
	| position |
	super step.
	time := Sensor peekMousePt.
self position: ChangeSet current name, ' ',position asString.
! !

!InfoMorph methodsFor: 'step' stamp: 'edc 2/20/2002 11:30'!
stepTime
	"Answer the desired time between steps in milliseconds."

	^ 1000! !


!InfoMorph methodsFor: 'as yet unclassified' stamp: 'edc 6/26/2002 15:34'!
cambio: s
info contents:s! !


More information about the Squeak-dev mailing list