Sorry I forget to send the thread:

http://forum.world.st/Putting-Algernon-and-WorkingSet-in-a-Dev-image-td1295930.html#a2068260

Cheers

Mariano
**
On Mon, Jun 7, 2010 at 9:33 AM, Mariano Martinez Peck <[email protected]
> wrote:

> Hi Guille. Yes, some months ago I discovered that changeset. I separated
> it, saved into a .ch, loaded it into a PharoCore clean image and I tried to
> understood it.
> My knoweldege about Morhpic is very limited, but the changed looked of for
> me.
>
> What would be cool is to commit to inbox such changes. Create an issue like
> "*support various focus holders for **HandMorph *"
> Then, send a separated mail about this changes and get feedback. If agree,
> we can integrate it in the core. With this, at least Algernon doesn't have
> to do such hack.
>
> I also asked this to Romian as he was developing WorkingSet and the problem
> was that you couldn't have both at the same time because of the shortcuts.
> These changes may solve that. Although he didn't have time to look at it.
>
> Cheers
>
> Mariano
>
>
> On Mon, Jun 7, 2010 at 5:54 AM, Guillermo Polito <
> [email protected]> wrote:
>
>> Hi, i was looking at this issue and I have some questions :):
>>
>> - There are some changes to HandMorph in a changeset hardcoded in the
>> ConfigurationOfAlgernon.  As Mariano said here (
>> http://forum.world.st/Putting-Algernon-and-WorkingSet-in-a-Dev-image-td1295930.html#a1295941)
>> "The main change does the simples modifications to HandMorph for it to
>> support various focus holders".  Is it safe to integrate it in Pharo?  If
>> so, should it be integrated in the core Morph package?   The changeset is
>> the following:
>>
>> * '''From Squeak3.7gamma of ''''17 July 2004'''' [latest update: #5985]
>> on 9 August 2004 at 7:56:10 pm''!
>> "Change Set:        MultipleFocusHolder-hpt
>> Date:            9 August 2004
>> Author:            Hernan Tylim
>>
>> This changesets does the simplest modifications to HandMorph for it to
>> support various focus holders.
>>
>> The important changes are:
>>
>> * addiionalKeyboardFocuses instance variable was added with its getter and
>> setter methods.
>>
>> * HandMorph>>sendKeyboardEvent: was changed to traverse the list of
>> keyboard focus holders and call HandMorph>>sendEvent:focus:clear: to each
>> one of them.
>>
>> * HandMorph>>sendEvent:focus:clear: was changed to preserve the
>> ''wasHandled'' status of the event, before that info were lost because the
>> Event instance were copied before passed to the Morph.
>> "!
>>
>> Morph subclass: #HandMorph
>>     instanceVariableNames: ''mouseFocus keyboardFocus eventListeners
>> mouseListeners keyboardListeners mouseClickState mouseOverHandler
>> lastMouseEvent targetOffset damageRecorder cacheCanvas cachedCanvasHasHoles
>> temporaryCursor temporaryCursorOffset hasChanged savedPatch userInitials
>> lastEventBuffer genieGestureProcessor additionalKeyboardFocuses ''
>>     classVariableNames: ''DoubleClickTime EventStats NewEventRules
>> NormalCursor PasteBuffer ShowEvents ''
>>     poolDictionaries: ''EventSensorConstants''
>>     category: ''Morphic-Kernel''!
>>
>> !HandMorph methodsFor: ''focus handling'' stamp: ''hpt 8/8/2004 01:52''!
>> addAdditionalKeyboardFocus: aMorph
>>     (self additionalKeyboardFocuses includes: aMorph)
>>         ifFalse: [self additionalKeyboardFocuses addFirst: aMorph]! !
>>
>> !HandMorph methodsFor: ''focus handling'' stamp: ''hpt 8/7/2004 23:47''!
>> additionalKeyboardFocuses
>>     ^additionalKeyboardFocuses ifNil: [additionalKeyboardFocuses _
>> OrderedCollection new].! !
>>
>> !HandMorph methodsFor: ''focus handling'' stamp: ''hpt 8/8/2004 00:12''!
>> clearFocusHolder: aMorph
>>     self keyboardFocus == aMorph
>>         ifTrue:     [^self keyboardFocus: nil].
>>     (self additionalKeyboardFocuses includes: aMorph)
>>         ifTrue: [self removeAdditionalKeyboardFocus: aMorph].! !
>>
>> !HandMorph methodsFor: ''focus handling'' stamp: ''hpt 8/7/2004 23:48''!
>> fullKeyboardFocuses
>>     ^self additionalKeyboardFocuses copyWith: self keyboardFocus.! !
>>
>> !HandMorph methodsFor: ''focus handling'' stamp: ''hpt 8/7/2004 23:43''!
>> keyboardFocuses
>>     keyboardFocuses ifNil: [keyboardFocuses := OrderedCollection new].
>>     ^keyboardFocuses! !
>>
>> !HandMorph methodsFor: ''focus handling'' stamp: ''hpt 8/7/2004 23:49''!
>> removeAdditionalKeyboardFocus: aMorph
>>     self additionalKeyboardFocuses remove: aMorph! !
>>
>> !HandMorph methodsFor: ''private events'' stamp: ''hpt 8/8/2004 01:18''!
>> sendFocusEvent: anEvent to: focusHolder clear: aBlock
>>     "Send the event to the morph currently holding the focus"
>>     | result w e |
>>     w _ focusHolder world ifNil:[^ aBlock value].
>>     w becomeActiveDuring:[
>>         ActiveHand _ self.
>>         ActiveEvent _ anEvent.
>>         e _ (anEvent transformedBy: (focusHolder transformedFrom: self)).
>>         result _ focusHolder handleFocusEvent: e    .
>>         anEvent wasHandled: e wasHandled.
>>     ].
>>     ^result! !
>>
>> !HandMorph methodsFor: ''private events'' stamp: ''hpt 8/8/2004 01:09''!
>> sendKeyboardEvent: anEvent
>>     "Send the event to the morph currently holding the focus, or if none
>> to the owner of the hand."
>>
>>     self fullKeyboardFocuses do: [:focusHolder |
>>         "(anEvent keyCharacter = $\) ifTrue: [self halt]."
>>         anEvent wasHandled
>>             ifFalse: [self sendEvent: anEvent focus: focusHolder
>> clear:[self clearFocusHolder: focusHolder]]].! !
>>
>> Morph subclass: #HandMorph
>>     instanceVariableNames: ''mouseFocus keyboardFocus eventListeners
>> mouseListeners keyboardListeners mouseClickState mouseOverHandler
>> lastMouseEvent targetOffset damageRecorder cacheCanvas cachedCanvasHasHoles
>> temporaryCursor temporaryCursorOffset hasChanged savedPatch userInitials
>> lastEventBuffer genieGestureProcessor additionalKeyboardFocuses''
>>     classVariableNames: ''DoubleClickTime EventStats NewEventRules
>> NormalCursor PasteBuffer ShowEvents''
>>     poolDictionaries: ''EventSensorConstants''
>>     category: ''Morphic-Kernel''!
>> *'
>>
>> It should be nice someone who knows well morphic checks it.
>>
>> Cheers,
>> Guille
>>
>
>
_______________________________________________
Pharo-project mailing list
[email protected]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

Reply via email to