home *** CD-ROM | disk | FTP | other *** search
Wrap
/* This Genie sets up a grid to match the position of a box, with snap enabled. If either a side or the top is selected, the result resembles a snap-to guide line. Note that when you move a box only the left or top side will snap, and rotated boxes do not snap properly. Ctrl-S switches snap on and off. Written by Don Cox © Feb 93. Not public domain but freely usable for non-commercial purposes. */ signal on error signal on syntax address command call SafeEndEdit.rexx() call ppm_AutoUpdate(0) cr="0a"x trace n currentunits = ppm_GetUnits() box = ppm_ClickOnBox(" Click on box for grid size.") if box = 0 then exit_msg("No box selected") gsize = ppm_GetGridSize() gwidth = word(gsize,1) gheight = word(gsize,2) call ppm_SaveText("ram:gridsize",gsize) size = ppm_GetBoxSize(box) width = word(size,1) height = word(size,2) where = ppm_GetBoxPosition(box) xpos = word(where,1) ypos = word(where,2) if xpos>2 then do xnum = xpos%2.0 xspacing = xpos/xnum end if ypos>2 then do ynum = ypos%2.0 yspacing = ypos/ynum end choice = ppm_Inform(3,"Set Grid position to match box...","Right","Top","Left") select when choice = 0 then do if (xpos+width)>2 then do xnum = (xpos+width)%2 xspacing = (xpos+width)/xnum end call ppm_SetGridSize(xspacing,0.01) end when choice = 1 then call ppm_SetGridSize(0.01,yspacing) otherwise call ppm_SetGridSize(xspacing,0.01) end call ppm_SetGrid(1) call ppm_SetGridSnap(1) call exit_msg() end error: syntax: do exit_msg("Genie failed due to error: "errortext(rc)) end exit_msg: do parse arg message if message ~= "" then call ppm_Inform(1,message) call ppm_ClearStatus() call ppm_AutoUpdate(1) exit end