And just when you thought it was safe. I wrote this sort of code to rename the long file names (which do not go well with vga resolution screen), but version is used to create groups on an OS/2 copy to disk thing. The created object would be <YF_rexxid>.
The 'help' is a MINDEX style object (like glossary). When you right-click on an object, there would be a help option, which would open the appropriate page in xlink.hlp. This could be used to launch various things like help files etc for extended reading, but would allow you to answer 'what's this' rather quickly. This is the 1998 version of it.
/* NewApps2.REXX ver 2.0 */
parse arg options
call rxfuncadd "SysLoadFuncs", "rexxutil", "SysLoadFuncs" ; call SysLoadFuncs
call mkfolders 'YK' /* The param is the lead */
call appnames
call makeicon
exit
appnames:
call locdir 'char , g:\exe\char'
call locdir 'pm , g:\exe\pm'
call locdir 'tweak , g:\exe\tweak'
call locdir 'sc2000, g:\games\sc2000'
call locdir 'gear, e:\os2\gear'
call locdir 'galciv, g:\games\galciv'
call locdir 'desc, g:\describe'
call locdir 'adobe, e:\acrobat3\reados2'
icons = 'g:\exe\icon'
call def 'rexxid, help ,flag, title , folder, exename'
call add 'ZTREE, x1001, , ZTree , char , ztbold.cmd'
call add 'WIN95, ?0000, , Win95 , pm , win95.exe'
call add 'UNITNB, ?0000, , UnitNb, pm , unitnb.exe'
call add 'TCOS2, ?0000, , Tcos2 , char , tcmdos2.exe'
call out 'SC2000, ?0000, , SC2000 , sc2000, sc2000.exe'
call add 'PMCAMERA, ?0000, , PMCamera, pm , pmcamera.exe'
call add 'PMCALC, ?0000,s , PMCalc , pm , pmcalc.exe'
call add 'WARPCAB, x1004, , PMCab , pm , warpcab.exe'
call add 'OPTIMISE, ?0000, , Optimise, tweak , optimize.exe'
call add 'LIST2, ?0000, , List , char , list2.exe'
call add 'INDEX, ?0000,i , Lindex , /index, MTABLES'
call add 'JARGON, ?0000,i , Jargon , /view , int299.inf+1vol299.inf+2vol299.inf+app299.inf'
call add 'GFC, ?0000, , Gfc , char , gfc.exe'
call add 'GEAR , ?0000, , Gear , gear , gearos2.exe'
call out 'GALCIV, ?0000, , GalCiv , galciv, galciv.exe'
call add 'FILEBAR , ?0000, , FileBar, pm , filebar.exe'
call add 'EDIT2, ?0000, , Edit , char , edit.exe'
call add 'DOSINFO, ?0000,si , DOS7 , /view;f:\dos70 , doscmd.inf+doserror.inf'
call add 'DLGEDIT, ?0000, , DlgEdit, char , dlgedit.exe'
call add 'DJLITE, x1002, , DjLite , char , djlite.exe'
call add 'FILEGRAF, x1005, , DiskGraf, pm , fgpm.exe'
call out 'DESCRIBE, ?0000, , Desc , desc , describe.exe'
call add 'DMASTER , x1003, , DMaster, pm , dmaster.exe'
call add 'BLACKBOX, ?0000, , Blackbox, tweak , blackbox.exe'
call add 'ACROREAD, ?0000, , Acrobat, adobe , acroread.exe'
return
mkfolders:
parse arg lead
boot=sysbootdrive()
myapp='<'lead'APPS>'
Setup ="BACKGROUND=(none),,,C,8 152 255;OBJECTID="myapp
Call SysCreateObject 'WPFolder','Applets', "<WP_DESKTOP>", Setup ,'u'
return
makeicon:
do nx = 1 to objnr
call getvars objs.nx
setup=defdirs(kfo, kex)
setup=setup || defhelp(khp)
setup=setup || defflags(kfl)
setup=setup || "OBJECTID=<"lead || krx">"
call SysCreateObject objclass, knm, myapp, setup, 'u'
/* say objclass',' knm',' myapp',' setup ', u' */
end
return
locdir:
parse arg t1
parse var t1 t1 ',' t2
t1 = strip(t1); t2 = strip(t2)
cdir.t1 = t2
return
def:
parse arg s1
objnr = 0
items = 0
objs. = ''
do while s1 \= ''
items = items + 1
parse var s1 s2','s1
s2 = strip(s2)
select /* here is where we define available objects */
when s2 = 'rexxid' then jrx = items
when s2 = 'help' then jhp = items
when s2 = 'flag' then jfl = items
when s2 = 'title' then jnm = items
when s2 = 'folder' then jfo = items
when s2 = 'exename' then jex = items
otherwise
nop
end
end
return
out:
parse arg .
return
add:
parse arg objstring
objnr = objnr + 1
objs.objnr = objstring
return
getvars:
parse arg t1
ix. = ''
iy = 0
do while t1 \= ''
iy = iy + 1
parse var t1 t2','t1
ix.iy = strip(t2)
end
krx = ix.jrx /* rexxid */
khp = ix.jhp /* help */
kfl = ix.jfl /* flag */
knm = ix.jnm /* title */
kfo = ix.jfo /* folder */
kex = ix.jex /* exename */
return
defhelp:
parse arg 1 t1 2 t2
t0 = ''
select
when t1 = 'x' then t0 = 'XLINK.HLP'
when t1 = '?' then t0 = ''
otherwise
nop
end
if t0 \= '' then do
t2 = strip(0 + t2)
t0 = 'HELPLIBRARY='t0';HELPPANEL='t2';'
end
return t0
defdirs:
parse arg ifo, iex
parse var ifo ifo';'ifodat
objclass = 'WPProgram'
select
when ifo = '/view' then do
if ifodat \= '' then directory = strip(ifodat)
t0 = 'EXENAME='boot'\OS2\VIEW.EXE;PARAMETERS='iex';'
end
when ifo = '/index' then do
t0 = 'INDEX='iex';'
objclass = 'Mindex'
end
otherwise
if when cdir.ifo \= '' then do
directory = cdir.ifo
t0 = 'EXENAME='directory'\'iex';'
end
end
return t0
defflags:
parse arg t1
t0 = ''
do while t1 \= ''
parse var t1 1 t2 2 t1
select
when t2 = 'i' then t0=t0'ICONFILE='icons'\'krx'.ico;'
when t2 = 's' then t0=t0'STARTUPDIR='directory';'
otherwise
nop
end
end
return t0