[squeak-dev] Re: The Inbox: Monticello-edc.456.mcz

Frank Shearar frank.shearar at angband.za.org
Thu Apr 14 14:33:16 UTC 2011


On 2011/04/14 15:18, Bert Freudenberg wrote:
> On 14.04.2011, at 15:29, Hannes Hirzel wrote:
>
>> OK I see.
>
> No you don't ;-)
>
>> SimpleMorphic needs it's own subclass of UIManager (which is in
>> Toolbuilder category).
>
> Perhaps. But this has nothing to do with the issue at hand.
>
>> Then we can add to UIManager
>>
>>> request:
>>> initialAnswer:
>>>                        centerAt:
>>>                        inWorld:
>>>                        onCancelReturn:
>>>                        acceptOnCR:
>>>                        answerExtent:
>>
>
> This method must *not* be added to ToolBuilder. It takes a World as one of its parameters. That is just plain wrong.

It's a bit more than that, too. It's assuming a bunch of stuff about a 
UI: the "centerAt:" and "answerExtent:" parts assume that you may 
position a window (and in a tiling window manager you don't have that 
expressed in pixels).

(And I'd really like a (loadable) tiling window manager; I grow weary of 
manually managing my windows.)

frank

>
> - Bert -
>
>> but then with self subclassreponsibility
>> as the other methods like
>>
>> request: queryString initialAnswer: defaultAnswer centerAt: aPoint
>> 	"Create an instance of me whose question is queryString with the given
>> 	initial answer. Invoke it centered at the given point, and answer the
>> 	string the user accepts. Answer the empty string if the user cancels."
>>
>> 	^self subclassResponsibility
>>
>> HJH
>>
>> On 4/14/11, Andreas Raab<andreas.raab at gmx.de>  wrote:
>>> On 4/14/2011 11:57, Bert Freudenberg wrote:
>>>> On 13.04.2011, at 21:23, Hannes Hirzel wrote:
>>>>
>>>>> OK, together with
>>>>>
>>>>> ToolBuilder-Kernel-edc.48.mcz
>>>>> ToolBuilder-Morphic-edc.77.mcz
>>>>>
>>>>> it makes sense.
>>>>>
>>>>> All the three changes should be committed, please....
>>>>>
>>>>> --Hannes
>>>>
>>>> I don't think so. No public ToolBuilder interface should depend on
>>>> Morphic. So I'd rather not add a method that needs a "world" argument.
>>>
>>> +1. Making the ToolBuilder interface depend on a particular UI framework
>>> would defeat its entire purpose.
>>>
>>> Cheers,
>>>    - Andreas
>>>
>>>>> On 4/13/11, Hannes Hirzel<hannes.hirzel at gmail.com>   wrote:
>>>>>> I think the second and the third change is fine. But I do not see the
>>>>>> method
>>>>>>
>>>>>> request:
>>>>>> initialAnswer:
>>>>>>                        centerAt:
>>>>>>                        inWorld:
>>>>>>                        onCancelReturn:
>>>>>>                        acceptOnCR:
>>>>>>                        answerExtent:
>>>>>>
>>>>>> in MorphicUIManager
>>>>>>
>>>>>> --Hannes
>>>>>>
>>>>>> On Tue, 12 Apr 2011 11:42:06.272 0000, commits at source.squeak.org
>>>>>> <commits at source.squeak.org>   wrote:
>>>>>>> Edgar J. De Cleene uploaded a new version of Monticello to project The
>>>>>>> Inbox:
>>>>>>> http://source.squeak.org/inbox/Monticello-edc.456.mcz
>>>>>>>
>>>>>>> ==================== Summary ====================
>>>>>>>
>>>>>>> Name: Monticello-edc.456
>>>>>>> Author: edc
>>>>>>> Time: 12 April 2011, 8:43:35.257 am
>>>>>>> UUID: a9b0cc20-0fed-4a2d-92a6-ed1df442421b
>>>>>>> Ancestors: Monticello-nice.455
>>>>>>>
>>>>>>> Some cleanup for avoid UI dependencies with LegacyMorphic
>>>>>>>
>>>>>>> =============== Diff against Monticello-nice.455 ===============
>>>>>>>
>>>>>>> Item was changed:
>>>>>>>   ----- Method: MCRepository class>>fillInTheBlankConfigure: (in
>>>>>>> category
>>>>>>> 'configuring') -----
>>>>>>>   fillInTheBlankConfigure: aTemplateString
>>>>>>>   	| chunk repo |
>>>>>>>   	
>>>>>>>   	aTemplateString ifNil: [ ^ false ].
>>>>>>> + 	chunk := UIManager default
>>>>>>> - 	chunk := FillInTheBlankMorph
>>>>>>>   			request: self fillInTheBlankRequest
>>>>>>>   			initialAnswer: aTemplateString
>>>>>>>   			centerAt: Sensor cursorPoint
>>>>>>>   			inWorld: World
>>>>>>>   			onCancelReturn: nil
>>>>>>>   			acceptOnCR: false
>>>>>>>   			answerExtent: 400 at 120.
>>>>>>>   			
>>>>>>>   	chunk
>>>>>>>   		ifNotNil: [
>>>>>>>   			repo := self readFrom: chunk readStream.
>>>>>>>   			repo creationTemplate: chunk.
>>>>>>>   	].
>>>>>>>
>>>>>>>   	^ repo!
>>>>>>>
>>>>>>> Item was changed:
>>>>>>>   ----- Method: MCSmtpRepository class>>morphicConfigure (in category
>>>>>>> 'as
>>>>>>> yet unclassified') -----
>>>>>>>   morphicConfigure
>>>>>>>   	| address |
>>>>>>> + 	address := UIManager default  request: 'Email address:'.
>>>>>>> - 	address := FillInTheBlankMorph request: 'Email address:'.
>>>>>>>   	^ address isEmpty ifFalse: [self new emailAddress: address]!
>>>>>>>
>>>>>>> Item was changed:
>>>>>>>   ----- Method: MCWorkingCopyBrowser>>addWorkingCopy (in category
>>>>>>> 'actions')
>>>>>>> -----
>>>>>>>   addWorkingCopy
>>>>>>>   	|name|
>>>>>>> + 	name := UIManager default  request: 'Name of package:'.
>>>>>>> - 	name := FillInTheBlankMorph request: 'Name of package:'.
>>>>>>>   	name isEmptyOrNil ifFalse:
>>>>>>>   		[PackageInfo registerPackageName: name.
>>>>>>>   		workingCopy := MCWorkingCopy forPackage: (MCPackage new name:
>>>>>>> name).
>>>>>>>   		workingCopyWrapper := nil.
>>>>>>>   		self repositorySelection: 0].
>>>>>>>   	self workingCopyListChanged; changed: #workingCopySelection;
>>>>>>> changed:
>>>>>>> #repositoryList.
>>>>>>>   	self changedButtons.!
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>>
>>>>
>>>>
>>>>
>>>
>>>
>>>
>>
>
>
>
>




More information about the Squeak-dev mailing list