home *** CD-ROM | disk | FTP | other *** search
- '***********************************************************************
- ' FormDev: Units.RLZ
- '
- ' Copyright ⌐ 1991-1992 Computer Associates International, Inc.
- ' All rights reserved.
- '
- '***********************************************************************
-
- LOCAL scrap2
- FormNew(FormQUnique)
- FormControl(_Size; 0, 0, 100 pct, 100 pct)
- scrap2 = FormQ(_Size)
- _HPxlPerScreen = scrap2[3]
- _VPxlPerScreen = scrap2[4]
- FormControl(_Close)
-
-
- FUNC UnitStr(unit)
- SELECT CASE unit
- CASE 1
- return "pixels"
- CASE 2
- return "percent"
- CASE 3
- return "inches"
- CASE 4
- return "millimeters"
- END SELECT
- END FUNC
-
- FUNC UnitShortStr(unit)
- SELECT CASE unit
- CASE 1
- return "pxl"
- CASE 2
- return "pct"
- CASE 3
- return "in"
- CASE 4
- return "mm"
- END SELECT
- END FUNC
-
- FUNC UnitFormatStr(unit)
- SELECT CASE unit
- CASE 1 'pixels
- return "P(0)"
- CASE 2,4 'percent and mm
- return "P(-1)"
- CASE 3 'inches
- return "P(-2)"
- END SELECT
- END FUNC
-
- FUNC Inch2Mm(inches)
- RETURN inches*25.4
- END FUNC
-
- FUNC Mm2Inch(x)
- RETURN x/25.4
- END FUNC
-
- FUNC HPct2Pxl(x)
- RETURN (x/100)*_HPxlPerScreen
- END FUNC
-
- FUNC VPct2Pxl(x)
- RETURN (x/100)*_VPxlPerScreen
- END FUNC
-
- FUNC HIn2Pxl(inch)
- RETURN inch * _HPxlPerInch
- END FUNC
-
- FUNC VIn2Pxl(inch)
- RETURN inch * _VPxlPerInch
- END FUNC
-
- FUNC HPxl2In(x)
- RETURN x / _HPxlPerInch
- END FUNC
-
- FUNC VPxl2In(x)
- RETURN x / _VPxlPerInch
- END FUNC
-
- FUNC HPxl2Pct(x)
- RETURN (x / _HPxlPerScreen) * 100
- END FUNC
-
- FUNC VPxl2Pct(x)
- RETURN (x / _VPxlPerScreen) * 100
- END FUNC
-
- FUNC HUnit2Pxl(rawval, unit)
- SELECT CASE unit
- CASE 1 'pixels
- RETURN rawval
- CASE 2 'percent
- RETURN HPct2Pxl(rawval)
- CASE 3 'inches
- RETURN HIn2Pxl(rawval)
- CASE 4 'mm
- RETURN HIn2Pxl(Mm2Inch(rawval))
- END SELECT
- END FUNC
-
- FUNC VUnit2Pxl(rawval, unit)
- SELECT CASE unit
- CASE 1 'pixels
- RETURN rawval
- CASE 2 'percent
- RETURN VPct2Pxl(rawval)
- CASE 3 'inches
- RETURN VIn2Pxl(rawval)
- CASE 4 'mm
- RETURN VIn2Pxl(Mm2Inch(rawval))
- END SELECT
- END FUNC
-
- FUNC HPxl2Unit(p, unit)
- SELECT CASE unit
- CASE 1 'pixels
- RETURN p
- CASE 2 'percent
- RETURN HPxl2Pct(p)
- CASE 3 'inches
- RETURN HPxl2In(p)
- CASE 4 'mm
- RETURN Inch2Mm(HPxl2In(p))
- END SELECT
- END FUNC
-
- FUNC VPxl2Unit(p, unit)
- SELECT CASE unit
- CASE 1 'pixels
- RETURN p
- CASE 2 'percent
- RETURN VPxl2Pct(p)
- CASE 3 'inches
- RETURN VPxl2In(p)
- CASE 4 'mm
- RETURN Inch2Mm(VPxl2In(p))
- END SELECT
- END FUNC
-
- PROC RecalcPixelsFromRaw
- theform.left = HUnit2Pxl(theform.rawleft, theform.units)
- theform.top = VUnit2Pxl(theform.rawtop, theform.units)
- theform.width = HUnit2Pxl(theform.rawwidth, theform.units)
- theform.height = VUnit2Pxl(theform.rawheight, theform.units)
- END PROC
-
- PROC RecalcRawFromPixels
- theform.rawleft = HPxl2Unit(theform.left, theform.units)
- theform.rawtop = VPxl2Unit(theform.top, theform.units)
- theform.rawwidth = HPxl2Unit(theform.width, theform.units)
- theform.rawheight = VPxl2Unit(theform.height, theform.units)
- END PROC
-
- PROC ItemsIntoRaw
- IF fdNumItems < 1 THEN
- EXIT PROC
- END IF
- IF theform.itemunits = 2 or theform.units = 2 THEN 'percent
- item.left = item.left / theform.cwidth * 100
- item.top = item.top / theform.cheight * 100
- item.width = item.width / theform.cwidth * 100
- item.height = item.height / theform.cheight * 100
- ELSE ' same units as screen
- item.left = HPxl2Unit(item.left, theform.units)
- item.top = VPxl2Unit(item.top, theform.units)
- item.width = HPxl2Unit(item.width, theform.units)
- item.height = VPxl2Unit(item.height, theform.units)
- END IF
- END PROC
-
- PROC ItemsIntoPixels
- IF fdNumItems < 1 THEN
- EXIT PROC
- END IF
- IF theform.itemunits = 2 or theform.units = 2 THEN 'percent
- item.left = item.left * theform.cwidth / 100
- item.top = item.top * theform.cheight / 100
- item.width = item.width * theform.cwidth / 100
- item.height = item.height * theform.cheight / 100
- ELSE ' same units as form
- item.left = HUnit2Pxl(item.left, theform.units)
- item.top = VUnit2Pxl(item.top, theform.units)
- item.width = HUnit2Pxl(item.width, theform.units)
- item.height = VUnit2Pxl(item.height, theform.units)
- END IF
- END PROC
-