Can some Morphic gurĂº check this? Thanks! Guille
http://code.google.com/p/pharo/issues/detail?id=2517&q=support&colspec=ID%20Type%20Status%20Summary%20Milestone%20Difficulty On Mon, Jun 7, 2010 at 4:34 AM, Mariano Martinez Peck <[email protected] > wrote: > 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
