home *** CD-ROM | disk | FTP | other *** search
/ The CDPD Public Domain Collection for CDTV 4 / CDPD_IV.bin / fish / 911-930 / ff925 / donsgenies / frenchgenies.lha / Rexx / PositionGrille.pprx < prev    next >
Text File  |  1993-08-08  |  2KB  |  81 lines

  1. /*
  2. @BPositionGrille @P @I Ecrit et © par Don Cox en Février 1993 et Aug 93.
  3. @IN'est pas du Domaine Publique. Tous Droits Réservés.
  4. Traduit par Fabien Larini le 30/07/93.
  5.  
  6. Ce Génie met en place une grille en demandant sa position plutôt que sa
  7. taille, en activant l'alignement sur grille. Il sauve les anciennes 
  8. dimensions de la grille afin de pouvoir les rappeler en utilisant le 
  9. Génie "RestoreGrille".
  10. */
  11.  
  12.  
  13. /*GridSetPosition*/
  14. /* This Genie sets up a grid to a user-defined position (rather than size), with snap enabled.
  15. Written by Don Cox  © Feb 93. Mods Aug 93. Not public domain. All rights reserved. */
  16.  
  17.  
  18. signal on error
  19. signal on syntax
  20. address command
  21. call SafeEndEdit.rexx()
  22. call ppm_AutoUpdate(0)
  23. cr="0a"x
  24.  
  25. currentunits = ppm_GetUnits()
  26.  
  27. gsize = ppm_GetGridSize()
  28. gwidth = word(gsize,1)
  29. gheight = word(gsize,2)
  30. call ppm_SaveText("ram:gridsize",gsize)
  31.  
  32. form = "Abscisse"cr"Ordonnée"
  33. form = ppm_GetForm("Saisie de l'Abscisse et/ou de l'Ordonnée",8,form)
  34. if form = "" then exit_msg("Position non fixée")
  35. parse var form xpos "0a"x ypos
  36.  
  37. if xpos>=4 then do
  38.     xnum = xpos%2.0
  39.     xspacing = xpos/xnum
  40.     end
  41. else if xpos>=2 then xspacing = xpos/2
  42. else xspacing = xpos
  43.  
  44. if ypos>2 then do
  45.     ynum = ypos%2.0
  46.     yspacing = ypos/ynum
  47.     end
  48. else if ypos>=2 then yspacing = ypos/2
  49. else yspacing = ypos
  50.  
  51.  
  52. select
  53.     when xpos = 0 | xpos = "" then call ppm_SetGridSize(0.01,yspacing)
  54.     when ypos = 0 | ypos = "" then call ppm_SetGridSize(xspacing,0.01)
  55.     otherwise call ppm_SetGridSize(xspacing,yspacing)
  56.     end
  57.  
  58. call ppm_SetGrid(1)
  59. call ppm_SetGridSnap(1)
  60.  
  61. call exit_msg()
  62.  
  63. end
  64.  
  65. error:
  66. syntax:
  67.     do
  68.     exit_msg("Arrêt du Génie dû à l'erreur: "errortext(rc))
  69.     end
  70.  
  71. exit_msg:
  72.     do
  73.     parse arg message
  74.     if message ~= "" then
  75.     call ppm_Inform(1,message,)
  76.     call ppm_ClearStatus()
  77.     call ppm_AutoUpdate(1)
  78.     exit
  79.     end
  80.  
  81.