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

  1. '***********************************************************************
  2. '    FormDev: StdBmp.RLZ
  3. '
  4. '    Copyright ⌐ 1991-1992 Computer Associates International, Inc.
  5. '    All rights reserved.
  6. '
  7. '***********************************************************************
  8.  
  9. PROC %%ShowBitMaps
  10.     LOCAL     startID, i, xPos, yPos, nextFile, bmpInfo, wd, ht, tp, found
  11.  
  12.     xPos = 5
  13.     yPos = 10
  14.     FormSelect(%%browser)
  15.     %%FrameIt(0)
  16.     startID = FormQNum(19)
  17.     FOR i = 0 TO 3
  18.         FormModifyObject(100 + i, _Close)
  19.         FormModifyObject(200 + i, _Close)
  20.         IF startID + i <= ENDVALID(%%bmNames) THEN
  21.             nextFile = %%bmNames[startID + i]
  22.             found = FileQ(fdClipArtPath + nextFile, _Exists)
  23.         ELSE
  24.             found = 0
  25.         END IF
  26.         IF found THEN
  27.             FormSetObject(100 + i, _BitmapButton, fdClipArtPath + nextFile, 10 in, 20 in)
  28.             bmpInfo = FormQObject(100 + i)
  29.             wd = MIN(bmpInfo[_FQO_Width], %%maxBMWidth)
  30.             ht = MIN(bmpInfo[_FQO_Height], %%maxBMWidth)
  31.             FormModifyObject(100 + i, _Normal, ((%%maxWidth - wd) \ 2) pxl, yPos, wd, ht)
  32.             tp = yPos + ht + 5
  33.             IF tp <= yPos + %%MaxPictSize - %%capHeight THEN
  34.                 FormSetObject(200 + i, _CaptionCenter, LEFT$(nextFile, LEN(nextFile) - 4), font_P, 0, tp, %%maxWidth, _Default)
  35.             ELSE
  36.                 FormSetObject(200 + i, _CaptionCenter, "", 20in, 20in)
  37.             END IF
  38.             IF fdClipArtPath = fdCurrentBmpPath AND nextFile = fdCurrentBmpFN THEN
  39.                 %%FrameIt(100 + i)
  40.             END IF
  41.             xPos = 5
  42.             yPos = yPos + %%MaxPictSize
  43.         END IF
  44.         IF NOT found THEN
  45.             FormSetObject(100 + i, _Button, "", 10 in, 10 in)
  46.             FormSetObject(200 + i, _Button, "", 10 in, 10 in)
  47.         END IF
  48.     NEXT
  49. END PROC
  50.  
  51.  
  52. PROC %%FrameIt (itemNum)
  53.     LOCAL    v
  54.  
  55.     IF itemNum = 0 THEN
  56.         FormModifyObject(300, _Gray, 20in, 20in)
  57.     ELSE
  58.         v = FormQObject(itemNum)
  59.         FormModifyObject(300, _Gray, v[_FQO_Left] - 3, v[_FQO_Top] - 3, v[_FQO_Width] + 6, v[_FQO_Height] + 6)
  60.     END IF
  61. END PROC
  62.  
  63.  
  64. PROC %%BrowserProc(params)
  65.     LOCAL currScroll, fName, bmpInfo, J
  66.  
  67.     IF params[_Invoke] <> _Click THEN
  68.         IF params[_Invoke] = _Close THEN
  69.             CLEAR %%browser
  70.         END IF
  71.         EXIT PROC
  72.     END IF
  73.  
  74.     LastFrameOff
  75.     FormSelect(params[_FormNum])
  76.     SELECT CASE params[_ItemNum]
  77.     CASE 1
  78.         fn = StdOpen(fdOpenBmpPath + "*.BMP", "Select a bitmap:")
  79.         IF FDParseFN(fn, "", fdOpenBmpPath, fdCurrentBmpFN) THEN
  80.             fdCurrentBmpPath = fdOpenBmpPath
  81.             UpdateBrowser
  82.             FormSelect(fdMain)
  83.             FormControl(_Show)
  84.         END IF
  85.     CASE 2
  86.         FormSelect(fdMain)
  87.         FormControl(_Show)
  88.     CASE 19
  89.         %%ShowBitmaps
  90.     CASE 100 TO 103
  91.         J = FormQNum(19) + params[_ItemNum] - 100
  92.         %%FrameIt(0)
  93.         %%FrameIt(params[_ItemNum])
  94.         fdCurrentBmpPath = fdClipArtPath
  95.         fdCurrentBmpFN = %%bmNames[J]
  96.         UpdateBrowser
  97.         FormSelect(fdMain)
  98.         FormControl(_Show)
  99.     END SELECT
  100. END PROC
  101.  
  102.  
  103. PROC UpdateBrowser
  104.     LOCAL    oldForm, s
  105.  
  106.     IF NOT QVar(%%browser) THEN
  107.         EXIT PROC
  108.     END IF
  109.     IF NOT FormQ(_Exists; %%browser) THEN
  110.         EXIT PROC
  111.     END IF
  112.     oldForm = FormQ(_Selected)
  113.     FormSelect(%%browser)
  114.     s = fdCurrentBmpFN
  115.     IF s = "" THEN
  116.         s = "<none selected>"
  117.         FormModifyObject(300, _Gray, 20in, 20in)
  118.     END IF
  119.     FormModifyObject(3002, _Gray, s)
  120.     IF oldForm THEN
  121.         FormSelect(oldForm)
  122.     END IF
  123. END PROC
  124.  
  125.  
  126. PROC ShowBrowser (..)
  127.     LOCAL    oldHG, v, yTop, J, show, recal, oldForm, new
  128.  
  129.     oldHG = QVar(%%formHourglass)
  130.     show = 1
  131.     recal = 0
  132.     IF QNOptParams THEN
  133.         show = QOptParam(1)
  134.         IF QNOptParams >= 2 THEN
  135.             recal = QOptParam(2)
  136.         END IF
  137.     END IF
  138.  
  139.     oldForm = FormQ(_Selected)
  140.     IF NOT QVar(%%browser, _Defined) THEN
  141.         %%browser = FormQUnique
  142.         new = 1
  143.     ELSEIF NOT FormQ(_Exists; %%browser) THEN
  144.         %%browser = FormQUnique
  145.         new = 1
  146.     ELSE
  147.         new = 0
  148.     END IF
  149.     IF new THEN
  150.         IF NOT oldHG THEN
  151.             SetHourglass
  152.         END IF
  153.         recal = 1
  154.         %%MaxPictSize = 80            ' Maximum size of bitmap on the vertical in pels.
  155.  
  156.         FormNew(%%browser; "ClipArt", _Title + _Close + _Minimize + _HotClick)
  157.         FormControl(_Size; 84 pct, 17 pct, 15 pct, 100)
  158.         desiredWid = FormQ(_Size)[3] - 2
  159.         FormSizeForWidHt(1, desiredWid, %%MaxPictSize * 4)
  160.         %%maxWidth = desiredWid
  161.  
  162.         FormSetObject(29998, _Bitmap, QSys(_ProgDir) + "White.BMP", 0, 0, 100pct, 100pct)
  163.         FormSetColor(_White; _Text)
  164.         FormSetObject(29999, _GroupBox, "", 0, 0)
  165.         FormSetColor(_Black; _Text)
  166.         yTop = FormQObject(29998)[_FQO_Height]
  167.         FormSetObject(1, _DefButton, "Open...", font_B, 0, yTop, 100 pct, _Default)
  168.         yTop = yTop + FormQObject(1)[_FQO_Height]
  169.         FormSetObject(300, _GroupBox, "", 20 in, 20 in)
  170.         FormModifyObject(300, _Gray)
  171.         FormSetObject(19, _ScrollBar, "", 0 pxl, 0 pxl, _Default, 100pct; _SB_Style + _SB_Vertical, 0, 0, 0, 0)
  172.         FormModifyObject(19, _Normal, desiredWid - FormQObject(19)[_FQO_Width] + 1, _Default, _Default, _Default)
  173.         %%maxWidth = FormQObject(19)[_FQO_Left]
  174.         %%maxBMWidth = %%maxWidth - 6
  175.  
  176.         FormSetColor(_LightGray; _Field)
  177.         FormSetColor(_LightGray; _Text)
  178.         FormSetObject(3000, _GroupBox, "", 0, yTop, 100, 100pct)
  179.         FormModifyObject(3000, _Gray)
  180.         yTop = yTop + 1
  181.         FormSetColor(_Black; _Text)
  182.         FormSetObject(3001, _CaptionLeft, "Current bitmap:", font_B, 1.1, yTop, 100pct, _Default)
  183.         yTop = yTop + FormQObject(3001)[_FQO_Height]
  184.         FormSetObject(3002, _CaptionCenter, "", font_P, 0, yTop, 100pct, _Default)
  185.         %%capHeight = FormQObject(3002)[_FQO_Height]
  186.         yTop = yTop + %%capHeight
  187.         FormSetColor(_White; _Field)
  188.         FormSizeForWidHt(100, desiredWid, yTop)
  189.         FormControl(_Size; _Right, _Bottom)
  190.         v = FormQ(_Size)
  191.         FormControl(_Size; v[1] - 10, v[2] - 10)
  192.         FormModifyObject(29998, _Normal, 0, 0, 100pct, 100pct)
  193.         FormModifyObject(29999, _Gray, 0, 0, 100pct, 100pct)
  194.         FOR J = 0 TO 3
  195.             FormSetObject(100 + J, _Button, "", 10 in, 10 in)
  196.             FormSetObject(200 + J, _Button, "", 10 in, 10 in)
  197.         NEXT
  198.         UpdateBrowser
  199.         FormSetProc(%%BrowserProc)
  200.     END IF
  201.     FormSelect(%%browser)
  202.     IF recal THEN
  203.         FormModifyObject(19; 1, 1, MAX(1, ENDVALID(%%bmNames) - 3), 4)
  204.         %%ShowBitMaps
  205.     END IF
  206.     IF show THEN
  207.         FormControl(_Show)
  208.     END IF
  209.     IF oldForm THEN
  210.         FormSelect(oldForm)
  211.     END IF
  212.     IF NOT oldHG THEN
  213.         ResetHourglass
  214.     END IF
  215. END PROC
  216.  
  217.  
  218. PROC %%BrowMenuCheck(J)
  219.     LOCAL    oldForm
  220.  
  221.     IF %%currentBM THEN
  222.         MenuSetCmd(%%currentBM; _Uncheck)
  223.     END IF
  224.     %%currentBM = J
  225.     MenuSetCmd(%%currentBM; _Check)
  226.  
  227.     oldForm = FormQ(_Selected)
  228.     FormNew(FormQUnique)
  229.     FormSetObject(1, _ListBox, "", 0, 0; _Sorted, _ListFiles, _NormFiles, fdClipArtPath + %%ClipArt.fileNames[%%currentBM])
  230.     %%bmNames = FormQStr(1, 1, 1000)
  231.     FormControl(_Close)
  232.     IF oldForm THEN
  233.         FormSelect(oldForm)
  234.     END IF
  235. END PROC
  236.  
  237.  
  238. PROC %%BrowMenuProc(params)
  239.     SetHourglass
  240.     MenuSelect(params[_MenuNum])
  241.     %%BrowMenuCheck(params[_ItemNum])
  242.     ShowBrowser(1, 1)
  243.     ToolOn(10)
  244.     ResetHourglass
  245. END PROC
  246.  
  247.  
  248. PROC InitBrowserMenu(title, position)
  249.     IF QVar(%%browserMenu) THEN
  250.         IF MenuQ(_Exists; %%browserMenu) THEN
  251.             EXIT PROC
  252.         END IF
  253.     END IF
  254.     %%currentBM = 0
  255.     %%browserMenu = MenuQUnique
  256.     MenuNew(%%browserMenu; title)
  257.     FileImport(fdClipArtPath + "ClipArt.RLV", _Realizer, _Named, %%ClipArt)
  258.     MenuSetCmd(Index(EndValid(%%ClipArt.menuNames)), %%ClipArt.menuNames)
  259.     %%BrowMenuCheck(1)
  260.     MenuSetProc(%%BrowMenuProc)
  261.     MenuControl(_Show; position)
  262. END PROC
  263.