Hi Gary,
I would like to implement a Finder-like behavior the GeneralScrollPane. For
this, I would need a way to control the scrolling so that every time I add a
new morph, the scroller scrolls (similar to ScrollBar>>animateValue:duration:
from OB).
The problem seems to be that the scrollbar value is not updated when I add a
new morph. Take a look at the code below. The result of the horizontal
scrollbar value at the end is 1.0, while it should be lower. Am I doing
something wrong, or is this a problem?
| m scroll |
m := PanelMorph new.
m
hResizing: #shrinkWrap;
vResizing: #spaceFill;
changeTableLayout;
listDirection: #leftToRight;
m addMorphBack: (Morph new
minWidth: 100;
hResizing: #shrinkWrap;
vResizing: #spaceFill).
scroll := GeneralScrollPane new
changeScrollerTableLayout;
scrollTarget: m.
scroll openInWindow.
scroll hScrollbar setValue: 1.0.
m addMorphBack: (Morph new
minWidth: 100;
hResizing: #shrinkWrap;
vResizing: #spaceFill).
scroll hScrollbar value
==> 1.0
Cheers,
Doru
On 11 Jan 2011, at 15:17, Gary Chambers wrote:
> A slight revision as this has highlighted an edge case in the original class
> as to when scrollbars are needed...
>
> Regards, Gary
>
> ----- Original Message ----- From: "Tudor Girba" <[email protected]>
> To: <[email protected]>
> Sent: Tuesday, January 11, 2011 1:53 PM
> Subject: Re: [Pharo-project] aligning morphs
>
>
> Excellent!
>
> I tried the example and it works well. I will work with it in the following
> days.
>
> Cheers,
> Doru
>
>
> On 11 Jan 2011, at 14:39, Gary Chambers wrote:
>
>> Try the attached change set with the following example...
>> Let me know if any use and we'll get it integrated.
>>
>> |m|
>> m := PanelMorph new.
>> m
>> fillStyle: Color green;
>> hResizing: #spaceFill;
>> vResizing: #spaceFill;
>> changeTableLayout;
>> layoutInset: 8.
>> m addMorph: (Morph new
>> height: 160;
>> minWidth: 100;
>> hResizing: #spaceFill;
>> vResizing: #shrinkWrap).
>> GeneralScrollPane new
>> changeScrollerTableLayout;
>> scrollTarget: m;
>> openInWindow
>>
>>
>> Regards, Gary
>>
>> ----- Original Message ----- From: "Tudor Girba" <[email protected]>
>> To: <[email protected]>
>> Sent: Monday, January 10, 2011 8:23 PM
>> Subject: Re: [Pharo-project] aligning morphs
>>
>>
>> Wow, that would be great! I cannot wait to test it.
>>
>> Cheers,
>> Doru
>>
>>
>> On 10 Jan 2011, at 16:50, Gary Chambers wrote:
>>
>>> I may get time later in the week to have a go with GeneralScrollPane to
>>> support the feature you desire... ;-)
>>>
>>> Regards, Gary
>>>
>>> ----- Original Message ----- From: "Tudor Girba" <[email protected]>
>>> To: <[email protected]>
>>> Cc: <[email protected]>
>>> Sent: Monday, January 10, 2011 2:23 PM
>>> Subject: Re: [Pharo-project] aligning morphs
>>>
>>>
>>> Hi Gary,
>>>
>>> Thanks for the reply.
>>>
>>> So, what would be required for scrollbars to work with spaceFill? I would
>>> really need this feature, but I do not know how to go about it.
>>>
>>> Could you or anyone else provide some hints? Of course code would be even
>>> better. But at this moment hi ts would be helpful, too :)
>>>
>>> Cheers,
>>> Doru
>>>
>>>
>>>
>>> On Jan 10, 2011, at 13:04, "Gary Chambers" <[email protected]>
>>> wrote:
>>>
>>>> Hi Doru,
>>>>
>>>> #spaceFill constraints are typically only used by table layouts.
>>>> ScrollPane is designed for fixed size contents, at present.
>>>> Might be nice to extend it to honour any #spaceFill of its single target
>>>> morph.
>>>> This would simplify usage of scrollers quite a bit!
>>>>
>>>> Regards, Gary
>>>>
>>>> ----- Original Message ----- From: "Tudor Girba" <[email protected]>
>>>> To: "[email protected] Development"
>>>> <[email protected]>
>>>> Sent: Saturday, January 08, 2011 1:22 AM
>>>> Subject: [Pharo-project] aligning morphs
>>>>
>>>>
>>>>
>>>> Hi,
>>>>
>>>> I would need help with understanding the magic behind alignment in Morphic.
>>>>
>>>> Take the example from below. Could anyone help me with what I should do to
>>>> have the morph stretch all the way horizontally?
>>>>
>>>> | scroll window morph |
>>>> scroll := ScrollPane new.
>>>> scroll
>>>> fillStyle: (SolidFillStyle color: Color blue);
>>>> vResizing: #spaceFill;
>>>> hResizing: #spaceFill.
>>>> morph := PanelMorph new.
>>>> morph
>>>> fillStyle: (SolidFillStyle color: Color yellow);
>>>> changeTableLayout;
>>>> listDirection: #topToBottom;
>>>> vResizing: #shrinkWrap;
>>>> hResizing: #spaceFill;
>>>> layoutInset: 10.
>>>> morph addMorphBack: (SimpleButtonMorph new width: 200; height: 200).
>>>> scroll scroller addMorph: morph.
>>>> window := SystemWindow new.
>>>> window addMorph: scroll fullFrame: (LayoutFrame fractions: (0 @ 0 corner:
>>>> 1 @ 1)).
>>>> window openInWorld
>>>>
>>>>
>>>> Cheers,
>>>> Doru
>>>>
>>>>
>>>> --
>>>> www.tudorgirba.com
>>>>
>>>> "Every thing should have the right to be different."
>>>>
>>>>
>>>>
>>>>
>>>>
>>>
>>>
>>
>> --
>> www.tudorgirba.com
>>
>> "Problem solving efficiency grows with the abstractness level of problem
>> understanding."
>>
>>
>>
>> <GeneralScrollPaneLayout.1.cs>
>
> --
> www.tudorgirba.com
>
> "Some battles are better lost than fought."
>
>
>
> <GeneralScrollPaneLayout.2.cs>
--
www.tudorgirba.com
"In a world where everything is moving ever faster,
one might have better chances to win by moving slower."