home *** CD-ROM | disk | FTP | other *** search
/ Fresh Fish 8 / FreshFishVol8-CD1.bin / new / gfx / edit / iconian / source / query.e < prev    next >
Text File  |  1994-05-03  |  6KB  |  187 lines

  1. OPT OSVERSION=39
  2.  
  3. MODULE    'exec/nodes','exec/ports','exec/types','exec/memory',
  4.                 'intuition/intuition',
  5.                 'dos/dos','dos/dosextens','workbench/workbench',
  6.                 'workbench/startup','wb','icon','Asl','libraries/Asl'
  7.  
  8.     DEF appport=NIL:PTR TO mp
  9.     DEF appflag=NIL
  10.     DEF appicon,newproj[250]:STRING
  11.     DEF lockname[250]:STRING,newlock=NIL
  12.     DEF fname[250]:STRING
  13.     DEF appobj:PTR TO diskobject
  14.     DEF oldchoice
  15.     DEF sleepobject=NIL:PTR TO diskobject
  16.     DEF appobject:PTR TO diskobject
  17.     DEF filename[250]:STRING
  18.     DEF amsg:PTR TO appmessage
  19.     DEF argptr:PTR TO wbarg
  20.     DEF args:PTR TO wbarg
  21.     DEF scratch
  22.     DEF appname[250]:STRING
  23.     DEF wb:PTR TO wbstartup
  24.     DEF olddir
  25.     DEF toolobject:PTR TO diskobject
  26.  
  27. PROC main()
  28.     IF (workbenchbase:=OpenLibrary('workbench.library',0))
  29.         IF (iconbase:=OpenLibrary('icon.library',0))
  30.             IF (aslbase:=OpenLibrary('asl.library',0))
  31.  
  32.                 IF wbmessage<>NIL
  33.                     wb:=wbmessage;args:=wb.arglist
  34.                     olddir:=CurrentDir(args.lock)
  35.                     IF args.name>0
  36.                         GetCurrentDirName(appname,250)
  37.                     ENDIF
  38.                 ENDIF
  39.                 StrAdd(appname,'Query_DropImage',ALL)
  40.  
  41.                 IF (sleepobject:=GetDiskObjectNew(appname))=NIL
  42.                     sleepobject:=GetDefDiskObject(WBTOOL)
  43.                 ENDIF
  44.                 IF sleepobject
  45.                     sleepobject.type:=NIL
  46.                     appobject:=sleepobject
  47.                     IF (appport:=CreateMsgPort())
  48.                         IF (appicon:=AddAppIconA(0,0,'Query version',appport,0,appobject,NIL))<>NIL
  49.                             WHILE appflag=NIL
  50.                                 WaitPort(appport)
  51.                                 WHILE (amsg:=GetMsg(appport))<>NIL
  52.                                     IF amsg.numargs=0
  53.                                         IF EasyRequestArgs(0, [20, 0, 'Query version', 'COPYRIGHT ®1994 by Chad Randall\n\nDo you wish to quit?','Ok|Cancel'], 0, 0)
  54.                                             appflag:=TRUE
  55.                                         ENDIF
  56.                                     ELSE
  57.                                         argptr:=amsg.arglist
  58.                                         FOR scratch:=1 TO amsg.numargs
  59.                                             StrCopy(newproj,argptr.name,ALL)
  60.                                             newlock:=argptr.lock
  61.                                             IF newlock
  62.                                                 NameFromLock(newlock,lockname,250)
  63.                                                 processname(filename,lockname,newproj)
  64.                                                 toggleiconplanes(filename)
  65.                                             ENDIF
  66.                                             argptr:=argptr+(SIZEOF wbarg)
  67.                                         ENDFOR
  68.                                     ENDIF
  69.                                     ReplyMsg(amsg)
  70.                                 ENDWHILE
  71.                             ENDWHILE
  72.                             RemoveAppIcon(appicon)
  73.                             WHILE (amsg:=GetMsg(appport))<>NIL
  74.                                 ReplyMsg(amsg)
  75.                             ENDWHILE
  76.                         ENDIF
  77.                         DeleteMsgPort(appport)
  78.                     ENDIF
  79.                     FreeDiskObject(sleepobject);sleepobject:=NIL
  80.                 ENDIF
  81.                 CloseLibrary(aslbase)
  82.             ENDIF
  83.             CloseLibrary(iconbase)
  84.         ENDIF
  85.         CloseLibrary(workbenchbase)
  86.     ENDIF
  87. ENDPROC
  88.  
  89. PROC stripinfo(name)
  90.     DEF comp1[6]:STRING,comp2[6]:STRING
  91.  
  92.     StrCopy(comp1,'.INFO',ALL)
  93.     MidStr(comp2,name,StrLen(name)-5,5)
  94.     UpperStr(comp2)
  95.     IF StrCmp(comp1,comp2,5)
  96.         MidStr(name,name,0,(StrLen(name)-5))
  97.     ENDIF
  98. ENDPROC
  99.  
  100. PROC processname(name,dir,file)
  101.  
  102.     DEF wish[20]:STRING
  103.  
  104.     StrCopy(name,dir,ALL)
  105.     IF StrLen(file)            /* IF a file (NOT DISK/DRAWER) */
  106.         RightStr(wish,name,1)
  107.         IF StrCmp(wish,':',1)=NIL       /*  DISK:DIR/NAME */
  108.             StrAdd(name,'/',ALL)
  109.         ENDIF
  110.         StrAdd(name,file,ALL)
  111.     ELSE
  112.         RightStr(wish,name,1)
  113.         IF StrCmp(wish,':',1)        /* DISK:  (so add disk) */
  114.             StrAdd(name,'disk',ALL)
  115.         ENDIF
  116.         IF StrCmp(wish,'/',1)        /* DISK:DIR/DIR/  (delete '/' */
  117.             MidStr(name,name,0,StrLen(name)-1)
  118.         ENDIF
  119.     ENDIF
  120.     MidStr(wish,name,0,1)
  121.     IF StrCmp(wish,'/',1)
  122.         MidStr(name,name,1,ALL)
  123.     ENDIF    
  124.     stripinfo(name)
  125. ENDPROC
  126.  
  127. PROC toggleiconplanes(name)
  128.     DEF diskobj:PTR TO diskobject
  129.     DEF icongad:PTR TO gadget
  130.     DEF regimage:PTR TO image,selimage:PTR TO image
  131.     DEF sizetmp,sizetmp2,tmpbuf,tmpbuf2,oldtmp,oldtmp2
  132.     DEF bufptr,bufptr2,dummy,scratch
  133.     DEF body[1000]:STRING
  134.     IF (diskobj:=GetDiskObject(name))
  135.         IF (diskobj.pad_byte=$F0)
  136.             StringF(body,'"\s"',name)
  137.             StrAdd(body,'\n\n    was saved using:\n\nUNREGISTERED Iconian 1.97',ALL)
  138.             EasyRequestArgs(0, [20, 0, 'Query icon version', body,'Ok'], 0, 0)
  139.         ENDIF
  140.         IF (diskobj.pad_byte=$F1)
  141.             StringF(body,'"\s"',name)
  142.             StrAdd(body,'\n\n    was saved using:\n\nRegistered Iconian 1.97',ALL)
  143.             EasyRequestArgs(0, [20, 0, 'Query icon version', body,'Ok'], 0, 0)
  144.         ENDIF
  145.         IF (diskobj.pad_byte=$F2)
  146.             StringF(body,'"\s"',name)
  147.             StrAdd(body,'\n\n    was saved using:\n\nUNREGISTERED Iconian 1.98',ALL)
  148.             EasyRequestArgs(0, [20, 0, 'Query icon version', body,'Ok'], 0, 0)
  149.         ENDIF
  150.         IF (diskobj.pad_byte=$F3)
  151.             StringF(body,'"\s"',name)
  152.             StrAdd(body,'\n\n    was saved using:\n\nRegistered Iconian 1.98',ALL)
  153.             EasyRequestArgs(0, [20, 0, 'Query icon version', body,'Ok'], 0, 0)
  154.         ENDIF
  155.         IF (diskobj.pad_byte=$E1)
  156.             StringF(body,'"\s"',name)
  157.             StrAdd(body,'\n\n    was saved using:\n\nRegistered Amiga Dream Iconian 1.98',ALL)
  158.             EasyRequestArgs(0, [20, 0, 'Query icon version', body,'Ok'], 0, 0)
  159.         ENDIF
  160.         IF (diskobj.pad_byte=$E0)
  161.             StringF(body,'"\s"',name)
  162.             StrAdd(body,'\n\n    was saved using:\n\nAmiga Dream Iconian 1.98',ALL)
  163.             EasyRequestArgs(0, [20, 0, 'Query icon version', body,'Ok'], 0, 0)
  164.         ENDIF
  165.         IF (diskobj.pad_byte=$E3)
  166.             StringF(body,'"\s"',name)
  167.             StrAdd(body,'\n\n    was saved using:\n\nRegistered AUI Iconian 1.98',ALL)
  168.             EasyRequestArgs(0, [20, 0, 'Query icon version', body,'Ok'], 0, 0)
  169.         ENDIF
  170.         IF (diskobj.pad_byte=$E2)
  171.             StringF(body,'"\s"',name)
  172.             StrAdd(body,'\n\n    was saved using:\n\nAUI Iconian 1.98',ALL)
  173.             EasyRequestArgs(0, [20, 0, 'Query icon version', body,'Ok'], 0, 0)
  174.         ENDIF
  175.         IF (diskobj.pad_byte=$E5)
  176.             StringF(body,'"\s"',name)
  177.             StrAdd(body,'\n\n    was saved using:\n\nRegistered Disk of the Month-Iconian 1.98',ALL)
  178.             EasyRequestArgs(0, [20, 0, 'Query icon version', body,'Ok'], 0, 0)
  179.         ENDIF
  180.         IF (diskobj.pad_byte=$E4)
  181.             StringF(body,'"\s"',name)
  182.             StrAdd(body,'\n\n    was saved using:\n\nDisk of the Month-Iconian 1.98',ALL)
  183.             EasyRequestArgs(0, [20, 0, 'Query icon version', body,'Ok'], 0, 0)
  184.         ENDIF
  185.     ENDIF
  186. ENDPROC
  187.