home *** CD-ROM | disk | FTP | other *** search
/ TestDrive Super Store 2.3 / TESTDRIVE_2.ISO / realizer / formdev / units.rlz < prev    next >
Encoding:
Text File  |  1992-09-30  |  4.2 KB  |  194 lines

  1. '***********************************************************************
  2. '    FormDev: Units.RLZ
  3. '
  4. '    Copyright ⌐ 1991-1992 Computer Associates International, Inc.
  5. '    All rights reserved.
  6. '
  7. '***********************************************************************
  8.  
  9. LOCAL    scrap2
  10. FormNew(FormQUnique)
  11. FormControl(_Size; 0, 0, 100 pct, 100 pct)
  12. scrap2 = FormQ(_Size)
  13. _HPxlPerScreen = scrap2[3]
  14. _VPxlPerScreen = scrap2[4]
  15. FormControl(_Close)
  16.  
  17.  
  18. FUNC UnitStr(unit)
  19.     SELECT CASE unit
  20.         CASE 1
  21.             return "pixels"
  22.         CASE 2
  23.             return "percent"
  24.         CASE 3
  25.             return "inches"
  26.         CASE 4
  27.             return "millimeters"
  28.     END SELECT
  29. END FUNC
  30.  
  31. FUNC UnitShortStr(unit)
  32.     SELECT CASE unit
  33.         CASE 1
  34.             return "pxl"
  35.         CASE 2
  36.             return "pct"
  37.         CASE 3
  38.             return "in"
  39.         CASE 4
  40.             return "mm"
  41.     END SELECT
  42. END FUNC
  43.  
  44. FUNC UnitFormatStr(unit)
  45.     SELECT CASE unit
  46.         CASE 1    'pixels
  47.             return "P(0)"
  48.         CASE 2,4    'percent and mm
  49.             return "P(-1)"
  50.         CASE 3    'inches
  51.             return "P(-2)"
  52.     END SELECT
  53. END FUNC
  54.  
  55. FUNC Inch2Mm(inches)
  56.     RETURN inches*25.4
  57. END FUNC
  58.  
  59. FUNC Mm2Inch(x)
  60.     RETURN x/25.4
  61. END FUNC
  62.  
  63. FUNC HPct2Pxl(x)
  64.     RETURN (x/100)*_HPxlPerScreen
  65. END FUNC
  66.     
  67. FUNC VPct2Pxl(x)
  68.     RETURN (x/100)*_VPxlPerScreen
  69. END FUNC
  70.  
  71. FUNC HIn2Pxl(inch)
  72.     RETURN inch * _HPxlPerInch
  73. END FUNC
  74.     
  75. FUNC VIn2Pxl(inch)
  76.     RETURN inch * _VPxlPerInch
  77. END FUNC
  78.     
  79. FUNC HPxl2In(x)
  80.     RETURN x / _HPxlPerInch
  81. END FUNC
  82.  
  83. FUNC VPxl2In(x)
  84.     RETURN x / _VPxlPerInch
  85. END FUNC
  86.  
  87. FUNC HPxl2Pct(x)
  88.     RETURN (x / _HPxlPerScreen) * 100
  89. END FUNC
  90.  
  91. FUNC VPxl2Pct(x)
  92.     RETURN (x / _VPxlPerScreen) * 100
  93. END FUNC
  94.  
  95. FUNC HUnit2Pxl(rawval, unit)
  96.     SELECT CASE unit
  97.         CASE 1    'pixels
  98.             RETURN rawval
  99.         CASE 2    'percent
  100.             RETURN HPct2Pxl(rawval)
  101.         CASE 3    'inches
  102.             RETURN HIn2Pxl(rawval)
  103.         CASE 4    'mm
  104.             RETURN HIn2Pxl(Mm2Inch(rawval))
  105.     END SELECT
  106. END FUNC
  107.  
  108. FUNC VUnit2Pxl(rawval, unit)
  109.     SELECT CASE unit
  110.         CASE 1    'pixels
  111.             RETURN rawval
  112.         CASE 2    'percent
  113.             RETURN VPct2Pxl(rawval)
  114.         CASE 3    'inches
  115.             RETURN VIn2Pxl(rawval)
  116.         CASE 4    'mm
  117.             RETURN VIn2Pxl(Mm2Inch(rawval))
  118.     END SELECT
  119. END FUNC
  120.  
  121. FUNC HPxl2Unit(p, unit)
  122.     SELECT CASE unit
  123.         CASE 1    'pixels
  124.             RETURN p
  125.         CASE 2    'percent
  126.             RETURN HPxl2Pct(p)
  127.         CASE 3    'inches
  128.             RETURN HPxl2In(p)
  129.         CASE 4    'mm
  130.             RETURN Inch2Mm(HPxl2In(p))
  131.     END SELECT
  132. END FUNC
  133.  
  134. FUNC VPxl2Unit(p, unit)
  135.     SELECT CASE unit
  136.         CASE 1    'pixels
  137.             RETURN p
  138.         CASE 2    'percent
  139.             RETURN VPxl2Pct(p)
  140.         CASE 3    'inches
  141.             RETURN VPxl2In(p)
  142.         CASE 4    'mm
  143.             RETURN Inch2Mm(VPxl2In(p))
  144.     END SELECT
  145. END FUNC
  146.  
  147. PROC RecalcPixelsFromRaw
  148.     theform.left = HUnit2Pxl(theform.rawleft, theform.units)
  149.     theform.top = VUnit2Pxl(theform.rawtop, theform.units)
  150.     theform.width = HUnit2Pxl(theform.rawwidth, theform.units)
  151.     theform.height = VUnit2Pxl(theform.rawheight, theform.units)
  152. END PROC
  153.  
  154. PROC RecalcRawFromPixels
  155.     theform.rawleft = HPxl2Unit(theform.left, theform.units)
  156.     theform.rawtop = VPxl2Unit(theform.top, theform.units)
  157.     theform.rawwidth = HPxl2Unit(theform.width, theform.units)
  158.     theform.rawheight = VPxl2Unit(theform.height, theform.units)
  159. END PROC
  160.  
  161. PROC ItemsIntoRaw
  162.     IF fdNumItems < 1 THEN
  163.         EXIT PROC
  164.     END IF
  165.     IF theform.itemunits = 2 or theform.units = 2 THEN        'percent
  166.         item.left = item.left / theform.cwidth * 100
  167.         item.top = item.top / theform.cheight * 100
  168.         item.width = item.width / theform.cwidth * 100
  169.         item.height = item.height / theform.cheight * 100
  170.     ELSE                ' same units as screen
  171.         item.left = HPxl2Unit(item.left, theform.units)
  172.         item.top = VPxl2Unit(item.top, theform.units)
  173.         item.width = HPxl2Unit(item.width, theform.units)
  174.         item.height = VPxl2Unit(item.height, theform.units)
  175.     END IF
  176. END PROC
  177.  
  178. PROC ItemsIntoPixels
  179.     IF fdNumItems < 1 THEN
  180.         EXIT PROC
  181.     END IF
  182.     IF theform.itemunits = 2 or theform.units = 2 THEN        'percent
  183.         item.left = item.left * theform.cwidth / 100
  184.         item.top = item.top * theform.cheight / 100
  185.         item.width = item.width * theform.cwidth / 100
  186.         item.height = item.height * theform.cheight / 100
  187.     ELSE         ' same units as form
  188.         item.left = HUnit2Pxl(item.left, theform.units)
  189.         item.top = VUnit2Pxl(item.top, theform.units)
  190.         item.width = HUnit2Pxl(item.width, theform.units)
  191.         item.height = VUnit2Pxl(item.height, theform.units)
  192.     END IF
  193. END PROC
  194.