There is also a handy plug in for geometry management by altuit which i always use. Writes code for you. I dont know about your situation but i never bother to adjust anything with screen size.
On 12/22/10, Peter Haworth <p...@mollysrevenge.com> wrote: > Thank you! I just looked at the lesson and it odes indeed clarify > things. I think I have a huge amount of work ahead of me though since > I have many screens and some of them have a large number of objects > that will need to be resized. > > I do use a lot of my own cprops so unfortunately won;t be able to use > the code snippet you gave for getting rid of the Geometry manager > properties. But if I am understanding the user guide correctly, if I > don't pass the resizeStack message, the geometry manager will never > see it and so won;t do anything. > > I am now thinking that I may be able to make use of my own custom > properties along with some common code to implement all this. Without > that, it sounds like thousands of lines of code. Alternatively, I'm > naively hoping that I might be able to write some code that will > simply adjust the size of controls and the distance between them based > on the ratio between the old and new screen sizes. For example, if > the user reduces the screen size by 10% horizontally, it seems like I > should be able to reduce the width of all the controls and the > horizontal distance between them by 10% and everything should fit. > I'm sure I;d need a way to deal with exceptions (cprops?). Is that > too simplistic? > > Pete Haworth > > On Dec 21, 2010, at 2:36 PM, Björnke von Gierke wrote: > >> Hi Peter >> >> I made a lesson because of your confusion, maybe it helps? It's >> called "How to manage and position objects when a stack is resized". >> If you create the code by yourself, then you at least know who >> messed up your stack ;) >> >> http://tinyurl.com/2adxkwq (leads to runrev.com lesson site) >> >> As for the Geometry manager, it works by adding hidden >> customproperties to every object. A front- or backscript that is >> part of revGeneral will check for these properties, and adjusts the >> objects rectangle. revGeneral is a button that is part of the IDE, >> and also added by the application builder, whenever you build a >> standalone. The properties are hidden by the IDE, and they are also >> called revGeneral (note that there's other, non-geometry stuff >> stored there too, like standalone builder settings). As you found >> out, the geometry manager is not only highly unreliable, but also >> confusing and moving objects every which way almost instantly. >> >> I am sure this explanation doesn't help you tho. So rest assured >> that coding your own is not only less confusing, but also easier to >> maintain. So, to get rid of the geometry manager stuff, you just >> need to delete all of the cpropsets. For example, from the multiline >> message box, or some other script you can do the following (Warning: >> only do it this way if you do _not_ use custom properties yourself, >> and don't mind to set up the application builders settings from >> scratch): >> >> repeat for the number of cards >> add one to y >> repeat for the number of controls >> add one to x >> set the custompropertysets of control x of card y to "" >> end repeat >> set the custompropertysets of card y to "" >> end repeat >> set the custompropertysets of this stack to "" >> >> On 21 Dec 2010, at 20:29, Peter Haworth wrote: >> >>> Thanks Damien. I've downloaded it and will give it a try. >>> >>> Pete Haworth >>> >>> On Dec 21, 2010, at 10:47 AM, Damien Girard wrote: >>> >>>> >>>> You can also take a look at NativeGeometry that will handle for >>>> you all the >>>> geometry management ;) >>>> >>>> http://www.nativesoft.fr/nativegeometry >>>> >>>> Kind Regards, >>>> >>>> Damien Girard >>>> NativeSoft, France. >>>> >>>> -----Message d'origine----- >>>> De : use-livecode-boun...@lists.runrev.com >>>> [mailto:use-livecode-boun...@lists.runrev.com] De la part de Robert >>>> Brenstein >>>> Envoyé : mardi 21 décembre 2010 19:36 >>>> À : How to use LiveCode >>>> Objet : Re: Geometry Manager >>>> >>>> >>>> On 21.12.2010 at 10:13 Uhr -0800 Peter Haworth apparently wrote: >>>>> Just started trying to figure out the geometry manager. It appears >>>>> there is already a default for every control to scale it when the >>>>> user resizes the window. Problem is, it doesn't happen. If I >>>>> resize my window, all the controls on it that fall completely >>>>> outside the boundary of the window disappear and any that are >>>>> partially outside the window are cut off. >>>>> >>>>> I'd also add that I tried looking in the LC preferences to see if >>>>> there was a setting to enable/disable the geometry manager and, >>>>> with >>>>> glx2 installed, the only preferences that I could get to were the >>>>> glx2 ones, not the LC ones. >>>>> >>>>> Pete Haworth >>>>> >>>> >>>> As others suggested, rolling your own geometry management is >>>> recommended for more complex situations. The built-in geometry >>>> manager works but to a certain complexity only, and when it breaks, >>>> the time and effort invested in setting it up will got to waste. You >>>> have indicated that your stack is not simple, so going with the >>>> built-in manager is not recommended. Others have already hinted that >>>> geometry management is not that difficult to program. Typically, you >>>> will have >>>> >>>> on preOpenCard >>>> -- accommodate user-inflicted resizing which occured on another card >>>> myGeomMgr (the width of this cd),(the height of this cd) >>>> end preOpenCard >>>> >>>> on resizeStack pNewWidth,pNewHeight >>>> -- accommodate user-inflicted resizing on this card >>>> myGeomMgr pNewWidth,pNewHeight >>>> end resizeStack >>>> >>>> on myGeomMgr pNewWidth,pNewHeight >>>> -- card level geometry manager >>>> constant cMargin = 25 >>>> # do the magic with bg objects >>>> myBgGeomMgr pNewWidth,pNewHeight -- optional >>>> # do the magic with card groups >>>> myGrpGeomMgr pNewWidth,pNewHeight -- optional >>>> # do the magic with cd objects >>>> ... >>>> -- an example resizing a field >>>> set the width of fld kListFld to pNewWidth-2*cMargin >>>> set the left of fld kListFld to cMargin >>>> ... >>>> end myGeomMgr >>>> >>>> Such a setup allows you to call your geometry management also from >>>> scripts, and allows you to pass parameters between scripts, if >>>> needed. Normally, one positions/resizes objects relative to card >>>> edges and other objects, dealing with width and height of each >>>> object. The order of positioning/resizing is often critical. >>>> >>>> Robert >>>> >>>> _______________________________________________ >>>> use-livecode mailing list >>>> use-livecode@lists.runrev.com >>>> Please visit this url to subscribe, unsubscribe and manage your >>>> subscription >>>> preferences: >>>> http://lists.runrev.com/mailman/listinfo/use-livecode >>>> >>>> >>>> >>>> _______________________________________________ >>>> use-livecode mailing list >>>> use-livecode@lists.runrev.com >>>> Please visit this url to subscribe, unsubscribe and manage your >>>> subscription preferences: >>>> http://lists.runrev.com/mailman/listinfo/use-livecode >>>> >>> >>> >>> _______________________________________________ >>> use-livecode mailing list >>> use-livecode@lists.runrev.com >>> Please visit this url to subscribe, unsubscribe and manage your >>> subscription preferences: >>> http://lists.runrev.com/mailman/listinfo/use-livecode >> >> >> _______________________________________________ >> use-livecode mailing list >> use-livecode@lists.runrev.com >> Please visit this url to subscribe, unsubscribe and manage your >> subscription preferences: >> http://lists.runrev.com/mailman/listinfo/use-livecode >> > > > _______________________________________________ > use-livecode mailing list > use-livecode@lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your subscription > preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode > -- Sent from my mobile device _______________________________________________ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode