TwoWayScrollPane is obsolete (was Re: Widow activation)
Trygve Reenskaug
trygver at ifi.uio.no
Tue Aug 17 09:27:20 UTC 2004
Stef, Doug
It seems that the ScrollPane in 3.7g-5983 would give me the same problem
since its handlesMouseDown: returns true. (I am running 'Squeak3.6 of 6
October 2003 update 5429). But the problem could well be that I am doing
something stupid somewhere else or that it is resolved in ScrollPane. I
will check when 3.7 is released.
Cheers
--Trygve
(P.S.: I find the morphic input unbelievably obscure with its recursive
calls and callbacks. I cannot even see through window activation in my
simple three layers of
(aSystemWindow -> aTwoWayScrollPane ->aPasteUpMorph).
Morph input is extremely powerful with its dragging and halos. But I don't
expect to understand it all for several months yet, if ever.)
At 17.08.2004 09:32, you wrote:
>Yes this would be important.
>
>Stef
>On 17 août 04, at 04:16, Doug Way wrote:
>
>>
>>FYI, TwoWayScrollPane is now obsolete. ScrollPane now handles two way
>>scrolling if needed, so you should be able to use ScrollPane for anything
>>that TwoWayScrollPane used to do. Some of the code in TwoWayScrollPane
>>may be getting old and crufty, which may be a source of your
>>problems. See this earlier message:
>>
>>http://groups.yahoo.com/group/squeak/message/82850
>>
>>At a minimum, we should add a note in the class comment for
>>TwoWayScrollPane that it's obsolete, and then perhaps deprecate any
>>instance creation methods.
>>
>>- Doug
>>
>>
>>On Monday, August 16, 2004, at 02:26 PM, Hernan Tylim wrote:
>>
>>>Hi Trygve,
>>>
>>> It was a long time ago but I think the rationale was this. The
>>> DiagramBrowser SystemWindow is composed of 3 panels. The two on the
>>> left and the one on the right where the Diagrams appear.
>>>
>>> This last one isn't a Diagram but a simple Morph acting as a
>>> container because if it wasn't in that way then the SystemWindow would
>>> change the Diagram's color to match the one of the window.
>>>
>>> Another reason in using SystemWindows in this way is that I found
>>> it more convenient for adding and removing submorphs. Here you just add
>>> and remove submorphs from the container and you forget about the
>>> SystemWindow. Without the container you would have to be careful on how
>>> you add and remove the morphs to not mest up the LayoutFrames and
>>> resizeability (does exists that word?) of the SystemWindow panels.
>>>
>>> Inside Diagram what we have is:
>>>
>>>- a TwoWayScrollablePanel
>>>- a TransformMorph
>>>- an HJPasteUpMorph
>>>
>>> To reduce one level of composition we could make Diagram to be a
>>> subclass of TwoWayScrollablePane, but I did it in this way because a
>>> Diagram do not only holds the TwoWayScrollablePane but also an extra
>>> annotation panel which is not visible by default (right click on the
>>> diagram and select: 'shows annotations panel').
>>>
>>> The TransformMorph is part of the TwoWayScrollablePanel so we
>>> cannot get rid of it. The last level is the PasteUpMorph which holds
>>> the shapes, and thats it. Those were the six level.
>>>
>>>Hope it helps.
>>>
>>>Regards,
>>>Hernán
>>>
>>>
>>>
>>>-----Original Message-----
>>>From: squeak-dev-bounces at lists.squeakfoundation.org
>>>[mailto:squeak-dev-bounces at lists.squeakfoundation.org] On Behalf Of
>>>Trygve Reenskaug
>>>Sent: Monday, August 16, 2004 2:23 PM
>>>To: The general-purpose Squeak developers list
>>>Subject: RE: Widow activation
>>>
>>>Hernán,
>>>Many thanks for your quick reply.
>>>
>>>The problem was that TwoWayScrollPane>>handlesMouseDown: returned true
>>>and the event did not reach up to the SystemWindow.
>>>Changing it to false solved the problem.
>>>
>>>Jacaranda was my starting point for the present programs, but I have
>>>tried to simplify the morph structure. Corresponding to my three levels,
>>>I find 6 levels in Jacaranda:
>>>
>>>a SystemWindow
>>>a Morph (Morph default)
>>>a Diagram (handlesMouseDown: returns evt yellowButtonPressed, i.e., false)
>>>a TwoWayScrollPane (handlesMouseDown: returns true)
>>>a TransformMorph (Morph default)
>>>a HJPasteUpMorph (handlesMouseDown: returns true)
>>>
>>>I haven't quite penetrated the rationale behind the many layers in
>>>Jacaranda, but it seems as if I could have introduced a dummy layer
>>>below the SystemWindow for the purposes of returning false. My solution
>>>is to use my own sco of TwoWayScollPane that returns true. This may be a
>>>hack since I there may be a deep reason for ScrollPanes to return true.
>>>
>>>Problem resolved. Many thanks for putting me on the right track
>>>--Trygve
>>>
>>>-----------------------------------------------
>>>At 16.08.2004 11:34, Hernán wrote:
>>>
>>>Hi Trygve,
>>>
>>> You should check DiagramBrowser. In there I have the same
>>>structure than you (SystemWindow, TwoWayScrollPane and PasteUpMorph) but
>>>without the problem you are describing.
>>>
>>> How are you handling the events? With #on:send:to: or overriding
>>>#handlesMouseDown: and #mouseDown: ? Because If you return false in
>>>#handlesMouseDown: I am pretty sure that the event should reach the
>>>SystemWindow and get it activated.
>>>
>>> BTW, you can always from the event handler send the #activate
>>>message to the SystemWindow yourself.
>>>
>>> > -----Original Message-----
>>> > From: Trygve
>>> >
>>> > I have a SystemWindow
>>> > containing a TwoWayScrollPane
>>> > containing a PasteUpMorph
>>> >
>>> > The window is activated (moved to the top) if I click the
>>> > SystemWindow header.
>>> > It is not activated if I click in a visible corner of the
>>> > PasteUpMorph.
>>> >
>>> > I have tried making the PasteUpMorph keep the event
>>> > WasHandeled at =false,
>>> > but it doesn't help.
>>> >
>>> > Any ideas?
>>> > Cheers
>>> > --Trygve
>>>
>>>
>>>
>>>
>>>--
>>>
>>>Trygve Reenskaug mailto: trygver <at> ifi.uio.no
>>>Morgedalsvn. 5A http://heim.ifi.uio.no/~trygver
>>>N-0378 Oslo Tel: (+47) 22 49 57 27
>>>Norway
>>>
>
>
--
Trygve Reenskaug mailto: trygver <at> ifi.uio.no
Morgedalsvn. 5A http://heim.ifi.uio.no/~trygver
N-0378 Oslo Tel: (+47) 22 49 57 27
Norway
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20040817/ca727663/attachment.htm
More information about the Squeak-dev
mailing list
|