Card Vertical Scrollbars

Peter Haworth pete at mollysrevenge.com
Thu Dec 23 01:48:16 EST 2010


Thanks Jacquie.  Is it so unreasonable to expect that a scrollbar on a  
group should just work?  I don't have the time or the inclination to  
write volumes of code to implement what should be a standard feature.   
At least document what is required to make a scrollbar work.  Datagrid  
scrollbars just work, I don't have to write any extra code.  I want a  
tool that allows me to concentrate on the logic of my application and  
not have to deal with the distractions of every tiny detail of a GUI.

As for the positioning of the scrollbar, if I I position something in  
the IDE, why wouldn't it stay that way in a standalone?  There's no  
excuse for a GUI elemnt looking one way in the IDe and then changing  
when it is saved.


Pete Haworth

On Dec 22, 2010, at 7:36 PM, J. Landman Gay wrote:

> On 12/22/10 4:29 PM, Peter Haworth wrote:
>
>> The scrollbar isn't active because everything in the group fits in  
>> the
>> window. So I resize the window and make it shorter - no change in the
>> scrollbar, still not active. OK, maybe this only works in a  
>> standalone?
>
> Whatever you see in the stack will be the same in a standalone, so  
> you don't need to go to the trouble until you get it working in the  
> stack. The group size (and therefore its scrollbar) did't change  
> because it wasn't scripted to.
>
>> I make a standalone and run it. Lo and behold, the resizing of the  
>> group
>> I did has gone away and the scrollbar is in the wrong place. And it
>> still doesn't scroll.
>
> If the group's lockloc property is false, the group will resize to  
> fit its content when it redraws, the same as images do. That happens  
> on opencard, among other things, so when you launched the  
> standalone, it redrew the group and adjusted the boundaries to fit.  
> Because the controls then fit inside it, the scrollbar didn't  
> activate. In your stack, adjust the group to the size you want it,  
> and in the Size and Position pane, lock it down. That will prevent  
> it from resizing on redraw.
>
> The group won't change size automatically regardless of its lockloc,  
> it needs instructions. The geometry manager does this in its own  
> way, and many of us write our own resizestack handlers to do it.  
> Regardless of the method you use, you need to give instructions for  
> every control on every card that needs to either move or change  
> size. If your group were the same size as the card, you'd do  
> something like this:
>
> on resizestack x,y
> set the rect of group "mygroup" to the rect of this cd
> end resizestack
>
> But often the group and the card aren't the same size and you need  
> to do a little math -- get the group's rect, change the numbers in  
> order to inset the group's borders, or move it down, or whatever.  
> But the idea is to script the rectangle of the group to match the  
> area it should cover.
>
> The controls inside the group will not change position when the size  
> of their enclosing group changes. The group boundaries only define  
> the area where the contained controls will be visible. So you also  
> have to alter the object positions by script in your resizestack  
> handler if you need them to move.
>
> There is no easy way to do it. The geometry manager tries to make it  
> simpler by automating some of the process with a GUI, but you still  
> need to set up every group and control individually. The Native  
> Geometry add-on has its own method, but you still need to show it  
> every control. Same for your own resizestack handler, each one needs  
> at least a line or two of script. It's pretty much just plain grunt  
> work.
>
> And that's why so many just design for the nearest common  
> denominator monitor size, and require that as one of the specs for  
> the program, just as we require a certain OS or memory footprint.  
> But with tiny mobile screens and giant displays now available that's  
> harder to do than it used to be. And even on desktops, you have to  
> go through all that if you want to provide a window with a resize  
> box on the corner.
>
> Basically there's no easy way to do it, you just roll up your  
> sleeves and plunge in.
>
> -- 
> Jacqueline Landman Gay         |     jacque at hyperactivesw.com
> HyperActive Software           |     http://www.hyperactivesw.com
>
> _______________________________________________
> use-livecode mailing list
> use-livecode at lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your  
> subscription preferences:
> http://lists.runrev.com/mailman/listinfo/use-livecode
>





More information about the use-livecode mailing list