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

  1. '***********************************************************************
  2. '    StdColor.rlz                              
  3. '
  4. '    Standard Color Function Library
  5. '
  6. '    Copyright ⌐ 1991-1992 Computer Associates International, Inc.
  7. '    All rights reserved.
  8. '
  9. '***********************************************************************
  10.  
  11. IF QVar(%%StdColor, _Defined) THEN
  12.     EXIT MACRO
  13. END IF
  14. %%StdColor = 1
  15.  
  16. RUN "StdError"
  17. RUN "CCLib1"
  18.  
  19. ColorNames = {"Black", "White", "Gray", "Red", "Green", "Blue", "Cyan", "Magenta", "Yellow"}
  20. ColorNames = {ColorNames, "Brick", "Evergreen", "MediumBlue", "Purple", "Turquoise", "Brown"}
  21. ColorNames = {ColorNames, "Pale", "Cream", "GreenYellow", "MediumGreen", "PowderBlue"}
  22. ColorNames = {ColorNames, "LightYellow", "LimeGreen", "LightGreen", "Maroon", "Pink", "Orange"}
  23. ColorNames = {ColorNames, "LightEvergreen", "DarkBrown", "MediumBrown", "DarkGreen", "DarkGreenBlue"}
  24. ColorNames = {ColorNames, "NavyBlue", "DarkPurple", "Tan", "GrayGreen", "LightGray", "Violet", "BlueGreen"}
  25.  
  26.  
  27. '**** StdColor(rgInitColor  [, asTitle  [, asOK  [, asCancel]]])
  28.  
  29. FUNC StdColor(rgInitColor, ..)
  30.     'OptParam(1) = asTitle
  31.     'OptParam(2) = asOK
  32.     'OptParam(3) = asCancel
  33.  
  34.     FUNC ColorPackedToRGB(color)
  35.         IF QVar(color, _Array) THEN
  36.             RETURN color
  37.         ELSE
  38.             RETURN QSys(_Color; color)
  39.         END IF
  40.     END FUNC
  41.  
  42.     PROC StdColorSetColor(color)
  43.         LOCAL rgb
  44.  
  45.         rgb = ColorPackedToRGB(color)
  46.         FormSetColor(rgb; _Field)
  47.         FormModifyObject(10, _SetColor)
  48.         FormSetColor(_White; _Field)
  49.         rgb = rgb * 100
  50.         FormModifyObject(31; rgb[1])
  51.         FormModifyObject(41; rgb[2])
  52.         FormModifyObject(51; rgb[3])
  53.         FormModifyObject(32, _Normal, Sprint("P(0)", rgb[1]))
  54.         FormModifyObject(42, _Normal, Sprint("P(0)", rgb[2]))
  55.         FormModifyObject(52, _Normal, Sprint("P(0)", rgb[3]))
  56.         %ColorRetVal = color
  57.     END PROC
  58.  
  59.     LOCAL fdColor, fdTemp, sel, r, g, b, n
  60.     LOCAL asTitle, asOK, asCancel
  61.     LOCAL %ColorRetVal
  62.  
  63.     ECType(rgInitColor, _Real, 1)
  64.     ECProto(QNOptParams, 3, "StdColor(rgInitColor [, asTitle  [, asOK  [, asCancel]]])")
  65.     IF QVar(rgInitColor, _Scalar) THEN
  66.         ECRange(rgInitColor, 1, 38, 1)
  67.     ELSE
  68.         IF StartValid(rgInitColor) <> 1 OR EndValid(rgInitColor) <> 3 THEN
  69.             STOP USING "Expecting the valid range of rgInitColor to be 1..3", 1
  70.         ELSE
  71.             FOR n = 1 to 3
  72.                 ECRange(rgInitColor[n], 0.0, 1.0, 1)
  73.             NEXT n
  74.         END IF
  75.     END IF
  76.     fdTemp = FormQ(_Selected)
  77.     asTitle = "Select a color"
  78.     asOK = "OK"
  79.     asCancel = "Cancel"
  80.     IF QNOptParams >= 1 THEN
  81.         ECType(QOptParam(1), _Alpha + _Scalar, 2)
  82.         asTitle = QOptParam(1)
  83.         IF QNOptParams >=2 THEN
  84.             ECType(QOptParam(2), _Alpha + _Scalar, 3)
  85.             asOK = QOptParam(2)
  86.             IF QNOptParams >= 3 THEN
  87.                 ECType(QOptParam(3), _Alpha + _Scalar, 4)
  88.                 asCancel = QOptParam(3)
  89.             END IF
  90.         END IF
  91.     END IF
  92.  
  93.     fdColor = FormQUnique
  94.     FormNew(fdColor; "StdColor", _Frame)
  95.     FormControl(_Size; _Center, _Center, 60 pct, 75 pct)
  96.     FormSetObject(20, _CaptionCenter, asTitle, 5 pct, 5 pct, 90 pct, _Default) 
  97.     FormSetObject(10, _GroupBox, "", 5 pct, 15 pct, 43 pct, 40 pct)
  98.     FormSetObject(21, _ListBox, "", 52 pct, 15 pct, 43 pct, 40 pct; ColorNames)
  99.     
  100.     FormSetObject(30, _CaptionLeft, "Red:", 5 pct, 60 pct)
  101.     FormSetObject(31, _ScrollBar, "", 18 pct, 60 pct, 60 pct, _Default; 0, 0, 100)
  102.     FormSetObject(32, _TextBox, "", 80 pct, 59 pct, 13 pct, _Default; _Notify)
  103.     FormSetObject(33, _CaptionLeft, "%" , 94 pct, 60 pct)
  104.     FormSetObject(40, _CaptionLeft, "Green:", 5 pct, 70 pct)
  105.     FormSetObject(41, _ScrollBar, "", 18 pct, 70 pct, 60 pct, _Default; 0, 0, 100)
  106.     FormSetObject(42, _TextBox, "", 80 pct, 69 pct, 13 pct, _Default; _Notify)
  107.     FormSetObject(43, _CaptionLeft, "%" , 94 pct, 70 pct)
  108.     FormSetObject(50, _CaptionLeft, "Blue:", 5 pct, 80 pct)
  109.     FormSetObject(51, _ScrollBar, "", 18 pct, 80 pct, 60 pct, _Default; 0, 0, 100)
  110.     FormSetObject(52, _TextBox, "", 80 pct, 79 pct, 13 pct, _Default; _Notify)
  111.     FormSetObject(53, _CaptionLeft, "%" , 94 pct, 80 pct)
  112.  
  113.     FormSetObject(3, _Button, asOK, _Left, _Bottom)
  114.     FormSetObject(2, _Button, asCancel, _Right, _Bottom)
  115.  
  116.     FormSetObject(60, _TextBox, "", 100 pct, 100 pct, 0, 0; _Notify)
  117.  
  118.     StdColorSetColor(rgInitColor)
  119.     IF QVar(rgInitColor, _Scalar) THEN
  120.         FormModifyObject(21; _ListSelect, rgInitColor)
  121.     END IF
  122.     LOOP
  123.         sel = FormWait
  124.         SELECT CASE sel
  125.             CASE 31, 41, 51        'Scroll bars
  126.                 r = FormQNum(31)
  127.                 g = FormQNum(41)
  128.                 b = FormQNum(51)
  129.                 StdColorSetColor({r, g, b} / 100)
  130.             CASE 1, 32, 42, 52        'Enter or Text boxes
  131.                 n = StrToNum(FormQStr(sel))
  132.                 If n <0 OR n>100 THEN
  133.                     FormModifyObject(sel, _Normal, "0")
  134.                 END IF
  135.                 r = StrToNum(FormQStr(32))
  136.                 g = StrToNum(FormQStr(42))
  137.                 b = StrToNum(FormQStr(52))
  138.                 StdColorSetColor({r, g, b} / 100)
  139.             CASE 21            'List Box
  140.                 StdColorSetColor(FormQNum(21))
  141.                 FormModifyObject(60, _SetFocus)
  142.             CASE 60
  143.                 IF FormWait(_Peek) = 21 THEN
  144.                     StdColorSetColor(FormQNum(21))
  145.                     FormModifyObject(60, _SetFocus)
  146.                 END IF
  147.             CASE 3    'OK
  148.                 FormControl(_Close)
  149.                 IF fdTemp THEN
  150.                     FormSelect(fdTemp)
  151.                 END IF
  152.                 RETURN %ColorRetVal
  153.             CASE 2    'Cancel
  154.                 FormControl(_Close)
  155.                 IF fdTemp THEN
  156.                     FormSelect(fdTemp)
  157.                 END IF
  158.                 RETURN 0
  159.         END SELECT
  160.     END LOOP
  161. END FUNC
  162.