TIP: RR Easy GM improvements

MisterX b.xavier at internet.lu
Tue Oct 12 07:50:54 EDT 2004


Hi everyone,
 
Here is an add-on we can all use to improve life with the geometry manager.
I can't live without it but it does have an annoying feature which is to
list a huge menu of unsorted controls when you link the geometry of an
object to another. Sometimes, I have 2 to 3 screen scrolls of controls in
some stacks and it's unmanageable! 

This trick is not for neophytes. But it is without danger. Backup the stack
mentioned below if you are not sure. 

The trick is to put the list of controls into a hierarchical
owner-to-control menu! 
And it was actually not too hard to figure out!

Here's the recipee:
 
Close RR.
Open RR
Show the message and type this

edit script of btn "Object name" of card revgeometrypositioning of stack
"RevPalette"
(located in Revolution 2.5\components\properties palettes\revpalette.rev)
Paste this script below instead of the old one 

In the msg, type:
  save stack revpalette

And that's it!!!

Your revPropertyPalette is now usable whence you have a 400 controls stack
and need to link one control to another geometrically speaking. ;)

If this tip saves you good time, which it should, 
consider a small donation to the paypal on http://monsieurx.com!
I might make more tips like these! 

RunRev can use this script to improve everyone's life too naturally!

REvRegards to all
Xavier
--
http://Monsieurx.com
Nitrous acceleration for RunTimeRevolution development!
--
The point to remember is that what the government gives, it must first take
away


<Script>
on menuPick pWhich
  set the itemdelimiter to "|"
  if the number of items in pWhich > 1 then
   put item 1 of pWhich into pGroup
   put item 2 of pWhich into pWhich
  end if
  set the itemdelimiter to comma
  if the short name of this cd is "revGeometryPositioning" then put "move"
into tName
  else put "scale" into tName
  if the cSide of this cd is among the items of "h,left,right" then put
"right" into tSide
  else put "bottom" into tSide
  put tName & the cSide of this cd && "object" into tGraphicName
  if the backPattern of grc tGraphicName is the cNoSize of grc tGraphicName
then
    set the backPattern of grc tGraphicName to the cFixed of grc
tGraphicName
  end if
  set the backPattern of grc (tName & the cSide of this cd) to the cNoSize
of grc (tName & the cSide of this cd)
  put tName & the cSide of this cd into tStart
  put the backPattern of grc tGraphicName is the cFixed of grc tGraphicName
into tTrue
  revSetGeometry (tStart),true
  if tTrue then
    --fixed scaling
    revSetGeometry (tStart & "Absolute"),true
  else
    --proportional scaling
    revSetGeometry (tStart & "Absolute"),false
  end if
  revSetGeometry (tStart & "ObjectSide"),tSide
  revSetGeometry (tStart & "ObjectRef"),pWhich
end menuPick

on revRefreshContents
  put the target
  local tObject,tStack
  local cowner,ownerlist
  local controllist

  /*
  if the shiftkey is down then sort by layer...
  else if the optionkey is down then sort by type/name
  else
  */

  put line 1 of revPaletteObjects() into tObject
  put the defaultStack into tStack
  set the defaultStack to revTargetStack(tObject)
  repeat with i = 1 to the number of controls
    if the long id of control i is tObject then next repeat
    put the owner of control i into cowner
    if cowner is not among the lines of ownerlist 
    then put cowner & CR after ownerlist
    put tab & the name of control i & CR after controllist[cowner]
    put the name of control i & CR after simpleList
  end repeat
  
  delete last char of ownerlist
  sort lines of ownerlist
  repeat for each line i in ownerlist
    put i & cr after tlist
    put controllist[i] after tlist
  end repeat
  
  delete last char of tList
  delete last char of simplelist
  set the defaultStack to tStack
  if the number of lines in ownerlist > 1 then
    set the text of me to tList
  else 
    set the text of me to simpleList
  end if
end revRefreshContents
</Script>




More information about the use-livecode mailing list