home *** CD-ROM | disk | FTP | other *** search
- /* CMD: ½LoadMacros */
- /* By Brett Evan Hester 13032 Copenhill Rd. Dallas, Tx. 75240-5302 */
- MacrosName = "LoadMacros"
- /* Macro Type: */
- /* SPECIAL * REMEMBERS */
- /* Description: */
-
- Info1A = "!Load Macros © Information 1 of 2"
- Info1B = ""
- Info1C = "@This macro allows for easier adding of macros. "
- Info1D = "@After options are chosen a file requester will "
- Info1E = "@appear; for ONLY a path OR a path and one file. "
- Info1F = ""
- Info1G = "@þ Number of Macros "
- Info1H = "¤ INDIVIDUAL FILE: adds one selected macro; "
- Info1I = "¤ ENTIRE DIR.: adds all macros within directory."
- Info1J = ""
- Info1K = "@þ Names for Added Macros "
- Info1L = "¤ NAME ...FILENAME: Macro's name = File's name. "
- Info1M = "¤ ENCODED...: Macros have names encoded within. "
- Info1N = "¤ ...USER: The name is asked from the user. "
-
- Info2A = "!Load Macros © Information 2 of 2"
- Info2B = "@ Plug-Ins and Go! © "
- Info2C = " Hester and associates"
- Info2D = " 13032 Copenhill Road "
- Info2E = " Dallas, Texas 75240 "
- Info2F = "@Special Thanks to: "
- Info2G = "Arnie Cachelin Henry Ribron Mark J. Holland "
- Info2H = "J. Phil Kelso Terry Wester Steven K. Simms "
- Info2I = "Kevin DeRita Greg Glaser William S. Hawes"
- Info2J = "NewTek © Commodore © INOVAtronics © "
- Info2K = ""
- Info2L = "@This macro represents a lot of time & hard work."
- Info2M = "@Encourage people to create new ones and not kill"
- Info2N = "@that possibility by stealing those that are out."
-
- /* -------------------------------------------------------------------- */
- /* Start Error Detection (See End) */
- SIGNAL ON ERROR
- SIGNAL ON SYNTAX
- /* Address LightWave */
- VT3DLib = ADDLIB("LWModelerARexx.port",0)
- ADDRESS "LWModelerARexx.port"
- /* Add Support Functions */
- SupportLib = "rexxsupport.library"
- IF POS(SupportLib , SHOW('L')) = 0 THEN
- IF ~ADDLIB(SupportLib , 0 , -30 , 0) THEN DO
- CALL Notify(1,"!Can't find "SupportLib)
- IF (VT3DLib) THEN CALL REMLIB("LWModelerARexx.port")
- EXIT
- END
-
- /* -------------------------------------------------------------------- */
- /* Reading Global Macro Preferences */
- BEHDefaultFilePath = "Sys:"
- BEHSettingsSavedTo = "T:"
- BEHSpeechAndSound = "1"
-
- IF (EXISTS("S:PlugInPrefs")) THEN DO
- IF (~OPEN(PlugInPrefs, "S:PlugInPrefs", 'R')) THEN BREAK
- IF (READLN(PlugInPrefs) ~= "PlugInPrefs") THEN BREAK
- BEHDefaultFilePath = READLN(PlugInPrefs)
- BEHSettingsSavedTo = READLN(PlugInPrefs)
- BEHSpeechAndSound = READLN(PlugInPrefs)
- CALL CLOSE PlugInPrefs
- END
-
- /* -------------------------------------------------------------------- */
- /* Recalling Macro Settings */
- ReqAdd = "1"
- ReqName = "3"
- FilePath = "/Arexx_Examples/lwm"
- FileName = ""
-
- PrefsFileName = BEHSettingsSavedTo||MacrosName||".PLUG"
-
- IF (EXISTS(PrefsFileName)) THEN DO
- IF (~OPEN(PrefsFile, PrefsFileName, 'R')) THEN BREAK
- IF (READLN(PrefsFile) ~= MacrosName) THEN BREAK
-
- ReqAdd = READLN(PrefsFile)
- ReqName = READLN(PrefsFile)
- FilePath = READLN(PrefsFile)
- FileName = READLN(PrefsFile)
-
- CALL CLOSE PrefsFile
- END
-
- /* -------------------------------------------------------------------- */
- /* Main Body Of Code */
- CALL MenuRequester
- CALL FileRequester
-
- DO FOREVER
- IF ReqAdd = 3 THEN CALL ScanDirectory
-
- CALL VerifyFile
- IF Verified = 0 THEN DO
- IF ReqAdd ~= 3 THEN CALL Sorry
- END
- IF Verified = 1 THEN DO
- CALL ReadFile
- IF ReqName = 1 THEN TheName = BaseName
- IF ReqName = 2 THEN TheName = EncodedName
- IF ReqName = 3 THEN CALL UseProvidedName
- CALL FinalStage
- END
- /* Starting Next Loop */
- IF ReqAdd = 1 THEN CALL Exiting
- IF ReqAdd = 2 THEN CALL FileRequester
- END
-
- CALL Exiting
-
- /* -------------------------------------------------------------------- */
- /* User Interface */
- MenuRequester:
-
- CALL Req_Begin("Load Macros © ")
-
- CALL Req_AddControl("",'T', " by Brett Hester ")
- CALL Req_AddControl("",'T', "")
- CALL Req_AddControl("",'T', "Number of Macros")
- ReqA = Req_AddControl("",'CV', "Individual File Multiple Files Entire Directory ")
- CALL Req_AddControl("",'T', "")
- CALL Req_AddControl("",'T', "Names for Added Macros")
- ReqB = Req_AddControl("",'CV', "Based Off Filename(s) Encoded In File(s) Provided By User ")
- CALL Req_AddControl("",'T', "")
- ReqC = Req_AddControl("",'CV', "Information")
-
- CALL Req_SetVal(ReqA, ReqAdd)
- CALL Req_SetVal(ReqB, ReqName)
- CALL Req_SetVal(ReqC, 0)
-
- OKorCancel = Req_Post() ; IF OKorCancel = 0 THEN CALL Exiting
-
- ReqAdd = Req_GetVal(ReqA)
- ReqName = Req_GetVal(ReqB)
- BEHInfo = Req_GetVal(ReqC)
-
- CALL Req_End()
-
- IF BEHInfo = 1 THEN CALL InformationWindows
-
- RETURN
-
- /* -------------------------------------------------------------------- */
- /* File Requester */
- FileRequester:
-
- FileReq = GetFileName("-- Select Macro(s) --", FilePath, FileName)
- IF FileReq = "" THEN CALL Exiting
- IF FileReq = "(none)" THEN CALL Exiting
- /* Extracting File Name and Path */
- FileReqLength = LENGTH(FileReq)
- FileDivider = LASTPOS("/",FileReq)
- IF FileDivider = 0 THEN FileDivider = LASTPOS(":",FileReq)
- FileNameLength = FileReqLength - FileDivider
-
- FilePath = STRIP(LEFT(FileReq, FileDivider),"T","/")
- FileName = RIGHT(FileReq, FileNameLength)
- /* Verify Directory Exists */
- IF EXISTS(FilePath) = 0 THEN DO
- CALL Notify(1,"!Sorry!",'@Directory "'||FilePath||'" not found.')
- CALL Exiting
- END
- /* If ENTIRE DIR. is selected: */
- IF ReqAdd = 3 THEN DO
- FileList = SHOWDIR(FilePath,"F",";")
- FilePathPlus = FilePath
- IF RIGHT(FilePath,1) ~= ":" THEN FilePathPlus = FilePath||"/"
- END
-
- CALL SaveSettings
-
- RETURN
-
- /* -------------------------------------------------------------------- */
- /* Striping Filename from FileList */
- ScanDirectory:
-
- PARSE var FileList FileName";"FileList
- IF FileName = "" THEN CALL Exiting
- FileReq = FilePathPlus||FileName
-
- RETURN
-
- /* -------------------------------------------------------------------- */
- /* Verify File */
- VerifyFile:
- /* Verify File Ends ".lwm" */
- Verified = 0
- FileSuffix = UPPER(RIGHT(FileReq, 4))
- IF FileSuffix = ".LWM" THEN Verified = 1
- BaseName = LEFT(FileName,((LENGTH(FileName))-4))
-
- RETURN
-
- /* -------------------------------------------------------------------- */
- /* Reading Encoded Name */
- ReadFile:
-
- IF (OPEN(TheFile, FileReq, 'R')) THEN DO
- EncodedName = READLN(TheFile)
- CALL CLOSE(TheFile)
- EncodedName = STRIP(COMPRESS(EncodedName,"*/ "))
- Remove = POS("CMD:",UPPER(EncodedName))
- IF Remove ~= 0 THEN EncodedName = STRIP(DELSTR(EncodedName,Remove,4))
- END
-
- RETURN
-
- /* -------------------------------------------------------------------- */
- /* User Interface */
- UseProvidedName:
-
- CALL Req_Begin("Load Macros ©")
-
- CALL Req_AddControl("File Name ",'T',BaseName)
- CALL Req_AddControl("Encoded Name",'T',EncodedName)
- ReqC = Req_AddControl("Macro Name ",'S', 20)
-
- CALL Req_SetVal(ReqC, BaseName)
-
- OKorCancel = Req_Post() ; IF OKorCancel = 0 THEN CALL Exiting
-
- TheName = Req_GetVal(ReqC)
-
- CALL Req_End()
-
- RETURN
-
- /* -------------------------------------------------------------------- */
- /* Adding Macro */
- FinalStage:
-
- IF POS(" ",FileReq) ~= 0 THEN DO
- IF ReqAdd ~= 3 THEN CALL Sorry
- END
-
- IF POS(" ",FileReq) = 0 THEN DO
- IF TheName = "" THEN TheName = "Unnamed"
- OKorCancel = RxCmd_Add(TheName, FileReq)
- END
-
- IF ReqAdd ~= 3 THEN DO
- IF OKorCancel = 0 THEN CALL Sorry
- END
-
- RETURN
-
- /* -------------------------------------------------------------------- */
- /* Recording Macro Settings */
- SaveSettings:
-
- IF (OPEN(PrefsFile, PrefsFileName, 'W')) THEN DO
- CALL WRITELN(PrefsFile, MacrosName)
-
- CALL WRITELN(PrefsFile, ReqAdd)
- CALL WRITELN(PrefsFile, ReqName)
- CALL WRITELN(PrefsFile, FilePath)
- CALL WRITELN(PrefsFile, FileName)
-
- CALL CLOSE PrefsFile
- END
-
- RETURN
-
- /* -------------------------------------------------------------------- */
- /* Ending */
- Exiting:
-
- IF (VT3DLib) THEN CALL REMLIB("LWModelerARexx.port")
- EXIT
-
- RETURN
-
- /* -------------------------------------------------------------------- */
-
- Sorry:
-
- ReqA = "!Sorry!"
- ReqB = ""
- ReqC = '@"'||FileReq||'"'
- ReqD = ""
- ReqE = "þ Macro already listed. - or -"
- ReqF = "þ File format unknown. - or -"
- ReqG = "þ File name contains spaces. - or -"
- ReqH = 'þ File name does not end with ".lwm"'
- CALL Notify(1,ReqA,ReqB,ReqC,ReqD,ReqE,ReqF,ReqG,ReqH)
-
- RETURN
-
- /* -------------------------------------------------------------------- */
- /* Information Windows */
- InformationWindows:
-
- OKorCancel = Notify(2, Info1A, Info1B, Info1C, Info1D, Info1E, Info1F, Info1G, Info1H, Info1I, Info1J, Info1K, Info1L, Info1M, Info1N)
- IF OKorCancel = 1 THEN CALL Notify(1, Info2A, Info2B, Info2C, Info2D, Info2E, Info2F, Info2G, Info2H, Info2I, Info2J, Info2K, Info2L, Info2M, Info2N)
- CALL MenuRequester
-
- RETURN
-
- /* -------------------------------------------------------------------- */
- /* Error Handling */
- SYNTAX:
- ERROR:
-
- ErrCode = RC
- ErrLine = SIGL
- ErrInfo = ERRORTEXT(ErrCode)
-
- Err1 = "!Sorry!"
- Err2 = "An Error has been detected"
- Err3 = "@þ Macro - "
- Err4 = "@þ Line Number - "
- Err5 = "@þ Error Code - "
- Err6 = "@þ Error Description -"
- Err7 = "@¤ Please Inform - "
- Err8 = ' "Error Notice" '
- Err9 = " 13032 Copenhill Rd."
- Err10 = " Dallas, TX. 75240 "
-
- Call Notify(1,Err1,Err2,Err3,MacrosName,Err4,ErrLine,Err5,ErrCode,Err6,ErrInfo,Err7,Err8,Err9,Err10)
-
- /* -------------------------------------------------------------------- */
- /* Advanced Error Handling */
- CALL SETCLIP("ErrorMacro",MacrosName)
- CALL SETCLIP("ErrorLine",ErrLine)
- CALL SETCLIP("ErrorCode",ErrCode)
- CALL SETCLIP("ErrorDesc",ErrInfo)
-
- PARSE SOURCE TempA TempB ErrFile TempC TempD TempE
-
- CALL SETCLIP("ErrorFile",ErrFile)
-
- /* -------------------------------------------------------------------- */
-
- IF (VT3DLib) THEN CALL REMLIB("LWModelerARexx.port")
- EXIT
-