ClassAct/Install_Classes

394 lines
22 KiB
Plaintext
Raw Permalink Blame History

; ---------------------------------------------------------------------------
; ************* PLEASE COPY THIS PROCEDURE ALONG WITH THE STRINGS IT USES
; ************* TO THE INSTALLER SCRIPT OF YOUR CLASSACT APPLICATION.
; ************* IT WILL TAKE CARE OF INSTALLING THE CLASSACT CLASSES YOU
; ************* PROVIDED WITH YOUR APPLICATION TO THE USER'S SYSTEM.
; $VER: ClassAct_Install 1.16 (9.3.97) by Osma Ahvenlampi
(set cpu (database "cpu"))
(set cpu020 (and (<> cpu "68000") (<> cpu "68010")))
(set v39 (>= (/ (getversion "exec.library" (resident)) 65536) 39))
; percentage of the size of included ClassAct classes versus the whole
; distribution (ie. total "complete" percentage after ClassAct is installed)
(set classact-complete 90)
; ClassAct installer scripts
;***********************************
;English Strings
;***********************************
(set #classdest-prompt "Please select the directory where you want the ClassAct classes installed.\n(See help for details)")
(set #classdest-help (cat "ClassAct is a GUI toolkit consisting of shared BOOPSI classes.\n\nSome programs require some or all of the ClassAct classes installed on your system. "
(if v39 (cat "OS 3.0 has a standard directory for BOOPSI classes, the SYS:Classes directory. It is recommended that you install ClassAct there.")
(cat "OS 2.0 does not have a standard place for disk resident BOOPSI classes. On OS 3.0 these classes are stored in the SYS:Classes directory. It is recommended that you create this directory and install ClassAct there.\nThis directory must be added in the LIBS: assign. This can be done by placing the command\nAssign >NIL: LIBS: SYS:Classes ADD\nto User-Startup. This installer will do this for you.")
)
)
)
(set #classes-020 "Do you want to use the OS 3.0, 020 optimised version of ClassAct?")
(set #help-020 "Some ClassAct libraries have versions optimised for use on 020 or better equipped OS 3.0 or later machines. If your Amiga is such equipped, you should install these. The 68000/2.0 versions will also work, but are slightly slower.")
(set #noclasses-message "The directory you selected for your ClassAct classes is not a part of the LIBS: assign.\n\nIt is necessary to add this assign so that the classes will be found properly.")
(set #creating-dir "Creating directory ")
(set #usbackup-prompt "User-Startup will now be backed up.")
(set #usbackup-help "This installer will next make a modification in User-Startup. Before doing this the old User-Startup will be backed up to S:User-Startup.old")
(set #adding-1 "Adding ")
(set #adding-2 " to LIBS: assign\n")
(set #adding-help "This is necessary so that the custom classes can be found.")
(set #junod-button "It seems you have a late Commodore 'V42' button.gadget installed on your system.\n\nClassAct's button.gadget is far more capable than this gadget, and we recommend that you replace it. The ClassAct button.gadget is backwards compatible to the Commodore gadget. Do you wish to back up the Commodore gadget and replace it with the ClassAct version?")
(set #junod-backed "The Commodore 'V42' button.gadget has been backed up with the name button.gadget.v42.\n\nThe ClassAct button.gadget will be installed in its place.")
(set #junod-kept "The Commodore 'V42' button.gadget was not replaced with the more capable ClassAct version.\n\nPrograms depending on the availability of ClassAct-only features will be likely to work wrong.")
;(set #caprefs-message "CAPrefs is a small utility that sets some user preferences for ClassAct applications. These include the bevel style (Thin/Gadtools/Xen), window backfills, and group label details.\n\nPlease use the ClassAct GUI prefs editor to alter the default settings provided. ClassAct prefs will be installed in your system Prefs drawer.\n\n")
(set #caprefs-message "ClassAct has several user-configurable aspects that affect the look of ClassAct interfaces.\n\nThese settings can be changed using the ClassAct preferences tool that will be installed in yout Prefs drawer.\n\nA small tool, CAPrefs, will be added to your user-startup to load the settings on reboot.")
(set #caprefs-startup-1 "Adding the command\n\n")
(set #caprefs-startup-2 "\n\nTo your s:User-Startup.")
(set #decompressing-classact "Compressed ClassAct distribution detected\n\nDecompressing to RAM:")
(set #deleting-cltmp "Deleting temporary files")
;***********************************
;Spanish Strings
;***********************************
(if (= @language "espa<70>ol")
(
(set #classdest-prompt "Por favor, seleccione el directorio donde desea instalar las clases de ClassAct.\n(Vea la ayuda para m<>s detalles)")
(set #classdest-help (cat "ClassAct es un kit de interface gr<67>fica consistente es clases compartidas BOOPSI.\n\nAlgunos programas requieren que algunas o todas de las clases de ClassAct est<73>n instaladas en su sistema. "
(if v39 (cat "El OS 3.0 tiene un directorio est<73>ndar para las clases BOOPSI: el directorio SYS:Classes. Se recomienda que instale ClassAct ah<61>.")
(cat "El OS 2.0 no tiene un sitio est<73>ndar para las clases BOOPSI residentes en disco. En el OS 3.0 esas clases son almacenadas en el directorio SYS:Classes. Se recomienda que cree este directorio e instale ClassAct ah<61>.\nEste directorio debe ser a<>adido a la asignaci<63>n de LIBS:. Esto puede ser hecho colocando el comando\nAssign >NIL: LIBS: SYS:Classes ADD\nal User-Startup. Este instalador lo har<61> por usted.")
)
)
)
(set #classes-020 "<22>Quiere usar la versi<73>n optimizada para OS 3.0 y 020 de ClassAct?")
(set #help-020 "Algunas librer<65>as de ClassAct tienen versiones optimizadas para el uso en m<>quinas con OS 3.0 y 020 o superior. Si su Amiga es una de tales m<>quinas deber<65>a instalar estas. Las versiones 68000/2.0 tambi<62>n funcionar<61>n, pero son ligeramente m<>s lentas")
(set #noclasses-message "El subdirectorio que seleccion<6F> para sus clases ClassAct no forma parte de la asignaci<63>n de LIBS:.\n\nEs necesario a<>adir esta asignaci<63>n para que las clases puedan ser localizadas adecuadamente.")
(set #creating-dir "Creando directorio ")
(set #usbackup-prompt "Ahora se har<61> una copia de seguridad del User-Startup.")
(set #usbackup-help "Este instalador har<61> ahora una modificaci<63>n en el User-Startup. Antes de hacer esto se har<61> una copia de seguridad del User-Startup en S:User-Startup.old")
(set #adding-1 "A<>adiendo ")
(set #adding-2 "a la asignaci<63>n de LIBS:\n")
(set #adding-help "Esto es necesario para que las clases puedan ser encontradas.")
(set #junod-button "Parece que tiene el <20>ltimo button.gadget de Comodore ('V42') instalado en su sistema.\n\nEl button.gadget de ClassAct es superior a este gadget y le recomendamos que lo remplace. El button.gadget de ClassAct es compatible con el de Commodore. <20>Desea hacer una copia de seguridad del gadget de Commodore y remplazarlo por la versi<73>n de ClassAct?")
(set #junod-backed "Se ha hecho una copia de seguridad del button.gadget 'V42' de Commodore con el nombre button.gadget.v42.\n\nEl button.gadget de ClassAct ser<65> instalado en su lugar.")
(set #junod-kept "El button.gadget 'V42' de Commodore no fu<66> remplazado con la versi<73>n superior de ClassAct.\n\nLos programas que dependan de la disponibilidad de las caracter<65>sticas de la versi<73>n de ClassAct funcionar<61>n mal probablemente")
;(set #caprefs-message "CAPrefs es una peque<75>a utilidad que inicializa algunas preferencias del usuario para las aplicaciones ClassAct. Estas incluyen el estilo de resaltado (Fino/GadTools/Xen), relleno de ventanas, y detalles de las etiquetas de grupo.\n\nPor favor, use las preferencias de interface de ClassAct en su caj<61>n de sistema 'Prefs' .\n\n")
(set #caprefs-message "ClasAct tiene varios aspectos configurables por el usuario que afectan a la apariencia de las interfaces ClassAct.\n\nEstos ajustes pueden ser modificados usando la herramienta de preferencias de ClassAct que ser<65> instalada en su caj<61>n 'Prefs'.\n\nUna peque<75>a herramienta, CAPrefs, ser<65> a<>adida a su user-startup para cargar los ajustes al arrancar.")
(set #caprefs-startup-1 "A<>adiendo el comando\n\n")
(set #caprefs-startup-2 "\n\nA su s:User-Startup.")
(set #decompressing-classact "Distribuci<63>n de Classact comprimida detectada\n\nDescomprimiendo a RAM:")
(set #deleteing-cltmp "Borrando ficheros temporales")
)
)
;***********************************
; Italian Strings
;***********************************
(if (= @language "italiano")
(
(set #classdest-prompt "Per favore scegli la directory in cui vuoi installare le classi ClassAct.\n(Vedi Aiuto per i dettagli)")
(set #classdest-help (cat "ClassAct <20> un toolkit GUI che consiste di classi BOOPSI condivise.\n\nCerti programmi richiedono che alcune o tutte le classi ClassAct siano installate sul tuo sistema. "
(if v39 (cat "Il SO 3.0 ha una directory standard per le classi BOOPSI, la directory SYS:Classes. Si raccomanda d'installare ClassAct proprio l<>.")
(cat "Il SO 2.0 non ha un posto standard per le classi BOOPSI residenti su disco. Nell'OS 3.0 queste classi sono immagazzinate nella directory SYS:Classes. Si raccomanda di creare questa directory e d'installarvi ClassAct.\nQuesta directory dev'essere aggiunta nell'assign LIBS:. Ci<43> pu<70> essere fatto mettendo il comando\nAssign >NIL: LIBS: SYS:Classes ADD\nnella User-Startup. Questo script d'installazione lo far<61> per te.")
)
)
)
(set #classes-020 "Vuoi usare la versione ottimizzata per SO 3.0 e CPU 020 di ClassAct?")
(set #help-020 "Alcune librerie ClassAct hanno versioni ottimizate per l'uso su macchine equipaggiate con una CPU 020 o superiore e il SO 3.0. Se il tuo Amiga <20> cos<6F> equipaggiato, dovresti installarle. Le versioni 68000/2.0 funzioneranno comunque, ma sono pi<70> lente.")
(set #noclasses-message "La directory che hai scelto per le tue classi ClassAct non <20> parte dell'assign LIBS:.\n\nE' necessario aggiungere questo assegnamento affinch<63> le classi siano trovate correttamente.")
(set #creating-dir "Creo la directory ")
(set #usbackup-prompt "La User-Startup sar<61> ora copiata per sicurezza.")
(set #usbackup-help "Questa installazione ora modificher<65> la User-Startup. Prima di fare ci<63>, la vecchia User-Startup sar<61> copiata per sicurezza in S:User-Startup.old")
(set #adding-1 "Aggiungo ")
(set #adding-2 " all'assign LIBS:\n")
(set #adding-help "Questo <20> necessario per far trovare al sistema le classi custom.")
(set #junod-button "Sembra che hai installato un recente button.gadget 'V42' della Commodore sul tuo sistema.\n\nIl button.gadget di ClassAct <20> molto pi<70> potente di questo gadget, e raccomandiamo di sostituirlo. Il button.gadget di ClassAct <20> compatibile con il gadget Commodore. Vuoi copiare per sicurezza il gadget Commodore e sostituirlo con la versione ClassAct?")
(set #junod-backed "Il button.gadget della Commodore 'V42' <20> stato copiato per sicurezza col nome button.gadget.v42.\n\nIl button.gadget di ClassAct sar<61> installato al suo posto.")
(set #junod-kept "Il button.gadget 'V42' della Commodore non <20> stato sostituito dalla versione ClassAct pi<70> potente.\n\nI programmi che dipendono dalla disponibilit<69> delle caratteristiche di ClassAct probabilmente funzioneranno male.")
;(set #caprefs-message "CAPrefs <20> una piccola utility che setta alcune preferenze dell'utente per le applicazioni ClassAct. Tra queste, lo stile dei bevel (Thin/Gadtools/Xen), i backfill delle finestre, ed il dettaglio della group label.\n\nPer favore usa l'editor di preferenze ClassAct GUI per modificare i settaggi standard forniti. ClassAct prefs sar<61> installato nel cassetto Prefs del tuo sistema.\n\n")
(set #caprefs-message "ClassAct ha diversi aspetti configurabili dall'utente che modificano l'aspetto delle interfacce ClassAct.\n\nQuesti settaggi possono essere cambiati usando il programma di preferenze ClassAct sar<61> installato nel tuo cassetto Prefs.\n\nUna piccola utility, CAPrefs, sar<61> aggiunta alla tua user-startup per caricare i settaggi al reboot.")
(set #caprefs-startup-1 "Aggiungo il comando\n\n")
(set #caprefs-startup-2 "\n\nalla tua S:User-Startup.")
(set #decompressing-classact "Trovata una distribuzione ClassAct compressa\n\nLa decomprimo in RAM:")
(set #deleting-cltmp "Cancello i file temporanei")
)
)
;***********************************
; Swedish Strings
;***********************************
(if (= @language "svenska")
(
(set #classdest-prompt "Var god v<>lj den l<>da d<>r du vill installera ClassAct-klasserna.\n(Se hj<68>lpen f<>r detaljer.)")
(set #classdest-help (cat "ClassAct <20>r en verktygsl<73>da f<>r skapandet av anv<6E>ndargr<67>nssnitt (GUI), som best<73>r av ett antal s<> kallade delade BOOPSI-klasser.\n\nEn del program kr<6B>ver att en del, eller alla, ClassAct-klasser <20>r installerade i din Amiga. "
(if v39 (cat "OS 3.0 har en standardl<64>da f<>r BOOPSI-klasser, Sys:Classes. Det rekommenderas att du installerar ClassAct d<>r.")
(cat "OS 2.0 har inte n<>gon standardl<64>da f<>r diskbaserade BOOPSI-klasser. I OS 3.0 lagras s<>dana klasser i l<>dan Sys:Classes. Det rekommenderas att du skapar denna l<>da, och installerar ClassAct d<>r.\nDenna l<>da m<>ste vara en del av Libs:-tilldelningen. Detta kan g<>ras genom att placera kommandot\nAssign >NIL: Libs: Sys:Classes ADD\ntill filen S:User-Startup. Den h<>r installeraren kommer att g<>ra det <20>t dig.")
)
)
)
(set #classes-020 "Vill du anv<6E>nda OS 3.0-versionen av ClassAct, som <20>r optimerad f<>r en 68020?")
(set #help-020 "N<>gra ClassAct-klasser finns i versioner som <20>r optmierade f<>r en 68020 och OS 3.0 eller b<>ttre. Om din Amiga har s<>dan utrustning (eller b<>ttre), s<> b<>r du installera dem. Versionerna f<>r 68000/2.0 fungerar ocks<6B>, men de <20>r n<>got l<>ngsammare.")
(set #noclasses-message "Den l<>da du har valt f<>r ClassAct-klasserna <20>r inte en del av Libs:-tilldelningen.\n\nDet <20>r n<>dv<64>ndigt att l<>gga till denna tilldelning, s<> att klasserna kan hittas utan problem.")
(set #creating-dir "Skapar l<>dan ")
(set #usbackup-prompt "S:User-Startup kommer nu att backas upp.")
(set #usbackup-help "Den h<>r installeraren kommer strax att modifiera filen S:User-Startup. Innan detta g<>rs, kommer den gamla S:User-Startup att backas upp till S:User-Startup.old")
(set #adding-1 "L<>gger till ")
(set #adding-2 " till Libs:-tilldelningen\n")
(set #adding-help "Detta m<>ste g<>ras f<>r att klasserna ska kunna hittas.")
(set #junod-button "Det ser ut som om du har Commodores 'V42' button.gadget installed i din Amiga.\n\nClassActs button.gadget kan mycket mer <20>n denna knapp, och vi rekommenderar att du ers<72>tter den. ClassAct-versionen av button.gadget <20>r bak<61>tkompatibel med Commodore-knappen. Vill du backa upp Commodore-knappen, och ers<72>tta den med ClassAct-versionen?")
(set #junod-backed "Commodores 'V42' button.gadget har backats upp som button.gadget.v42.\n\nClassActs button.gadget kommer att installeras ist<73>llet.")
(set #junod-kept "Commodores 'V42' button.gadget har inte ersatts av den mer kapabla ClassAct-versionen.\n\nProgram som f<>rlitar sig p<> tillg<6C>ngligheten av ClassAct-specifika funktioner kommer troligen inte att fungera som de ska.")
;(set #caprefs-message "CAPrefs <20>r ett litet program som s<>tter anv<6E>ndarinst<73>llningarna f<>r ClassAct-program. Dessa inst<73>llningar inkluderar ramstil (smal/gadtools/xen), f<>nsterbakgrunder samt detaljer r<>rande gruppetiketter.\n\nVar god anv<6E>nd ClassActs grafiska inst<73>llningsredigerare f<>r att <20>ndra de f<>rvalda inst<73>llningarna. ClassActs inst<73>llningsredigerare kommer att installeras i din Amigas Prefs-l<>da.\n\n")
(set #caprefs-message "ClassAct har flera anv<6E>ndardefinierbara aspekter som p<>verkar hur ClassAct-gr<67>nssnitt ser ut.\n\nDessa inst<73>llningar kan <20>ndras genom att anv<6E>nda ClassActs inst<73>llningsredigerare, som kommer att installeras i din Amigas Prefs-l<>da.\n\nEtt litet program, CAPrefs, kommer att l<>ggas till din S:User-Startup, f<>r att l<>sa in inst<73>llningarna vid systemuppstart.")
(set #caprefs-startup-1 "L<>gger till kommandot\n\n")
(set #caprefs-startup-2 "\n\ntill din s:User-Startup.")
(set #decompressing-classact "Komprimerad ClassAct-distribution uppt<70>ckt\n\nPackar upp till Ram:")
(set #deleting-cltmp "Raderar tempor<6F>ra filer")
)
)
(procedure install-classact ; call this procedure to copy the classes included in the Classes directory
; in your distribution dir.
(if (exists "ClassAct.lha") ; ClassAct is compressed - need to decompress first
( ; Distribution includes LHEX
(working (cat #decompressing-classact))
; ClassAct.lha contains paths/files "Classes/*", "C/CheckAssign", "Prefs/CAPrefs" and "Prefs/ClassAct"
(run "lhex -aqfw=ram:ClassAct/ x ClassAct.lha")
(set #classact-source "RAM:ClassAct")
)
(set #classact-source (pathonly @icon))
)
(if (exists "ClassAct.lzx") ; ClassAct is compressed - need to decompress first
( ; Distribution includes UNLZX
(working (cat #decompressing-classact))
; ClassAct.lzx contains paths/files "Classes/*", "C/CheckAssign", "Prefs/CAPrefs" and "Prefs/ClassAct"
(run "unlzx -amq x ClassAct.lzx ram:ClassAct/")
(set #classact-source "RAM:ClassAct")
)
(set #classact-source (pathonly @icon))
)
(if (exists (tackon #classact-source "Classes")) ; The archive contains a ClassAct library update.
(
(set comp-dest (/ (* classact-complete 2) 10))
(set comp-libs (/ (* classact-complete 3) 10))
(set comp-dirs (/ (* classact-complete 4) 10))
(set comp-junod (/ (* classact-complete 5) 10))
(set comp-020 (/ (* classact-complete 6) 10))
(set comp-gad (/ (* classact-complete 7) 10))
(set comp-im (/ (* classact-complete 8) 10))
(set comp-prefs (/ (* classact-complete 9) 10))
; has the user installed ClassAct in CLASSACT: ?
(set #classact-dest (getassign "CLASSACT" "A"))
(set @default-dest #classact-dest)
(if (= #classact-dest "") (set #classact-dest "SYS:Classes"))
; is ClassAct already in SYS:Classes ?
(if (or (not (exists (tackon #classact-dest "Gadgets/layout.gadget") (noreq)))
(= @user-level 2))
; no, ask where it should be placed
(set #classact-dest
(askdir
(prompt #classdest-prompt)
(help #classdest-help)
(default #classact-dest)
(newpath)
)
)
)
(complete comp-dest)
(if (<> (run (cat "\"" (tackon #classact-source "C/CheckAssign\"") " LIBS: " #classact-dest)) 0)
(
(message #noclasses-message)
(if (not (exists #classact-dest))
(makedir #classact-dest (prompt (cat #creating-dir #classact-dest)))
)
(set #addassign (cat "Assign >NIL: LIBS: " #classact-dest " ADD\n"))
(startup "CLASSACT"
(command #addassign)
(prompt (cat #adding-1 #classact-dest #adding-2))
(help #adding-help)
)
(run (#addassign))
)
)
(complete comp-libs)
(set #classact-gadgets (tackon #classact-dest "Gadgets"))
(set #classact-images (tackon #classact-dest "Images"))
(if (not (exists #classact-gadgets (noreq)))
(makedir #classact-images
(prompt (cat #creating-dir #classact-gadgets))
)
)
(if (not (exists #classact-images (noreq)))
(makedir #classact-images
(prompt (cat #creating-dir #classact-images))
)
)
(complete comp-dirs)
(if (exists "SYS:Classes/Gadgets/button.gadget")
(if (and (= 2752514 (getversion "SYS:Classes/Gadgets/button.gadget"))
(= 4868 (getsize "SYS:Classes/Gadgets/button.gadget")))
(if (askbool (prompt #junod-button) (help @askbool-help) (default 1))
(
(rename "SYS:Classes/Gadgets/button.gadget" "SYS:Classes/Gadgets/button.gadget.v42")
(message #junod-backed)
)
(message #junod-kept)
)
)
)
(complete comp-junod)
(if (and (and cpu020 v39) (exists (tackon #classact-source "Classes/Gadgets/layout.gadget.020")))
(set classes-020 (askbool (prompt #classes-020) (help #help-020) (default 1)))
(set classes-020 0)
)
(complete comp-020)
(set #source-path (tackon #classact-source "Classes/Gadgets"))
(foreach #source-path "#?.gadget"
(
(set thislib (tackon #source-path @each-name))
(if (and classes-020 (exists (cat thislib ".020")))
(set thislib (cat thislib ".020"))
)
(copylib (source thislib)
(dest #classact-gadgets)
(newname @each-name)
(prompt (cat #installing @each-name))
(help #classdest-help)
(optional "force" "askuser")
)
)
)
(complete comp-gad)
(set #source-path (tackon #classact-source "Classes/Images"))
(foreach #source-path "#?.image"
(
(set thislib (tackon #source-path @each-name))
(if (and classes-020 (exists (cat thislib ".020")))
(set thislib (cat thislib ".020"))
)
(copylib (source thislib)
(dest #classact-images)
(newname @each-name)
(prompt (cat #installing @each-name))
(help #classdest-help)
(optional "force" "askuser")
)
)
)
(complete comp-im)
(set #source-path (tackon #classact-source "Classes"))
(foreach #source-path "#?.class"
(
(set thislib (tackon #source-path @each-name))
(if (and classes-020 (exists (cat thislib ".020")))
(set thislib (cat thislib ".020"))
)
(copylib (source thislib)
(dest #classact-dest)
(newname @each-name)
(prompt (cat #installing @each-name))
(help #classdest-help)
(optional "force" "askuser")
)
)
)
)
)
(if (exists (tackon #classact-source "Prefs/ClassAct")) ; The archive contains ClassAct prefs tools
(
(message #caprefs-message)
(copylib (source (tackon #classact-source "Prefs/CAPrefs"))
(dest "C:")
(prompt (cat #installing "CAPrefs"))
)
(copylib (source (tackon #classact-source "Prefs/ClassAct"))
(dest "SYS:Prefs")
(prompt (cat #installing "ClassAct Prefs"))
(infos)
)
(complete comp-prefs)
(if (not (exists "ENVARC:ClassAct" (noreq)))
(
(makedir "ENVARC:ClassAct"
(prompt (cat #creating-dir "ENVARC:ClassAct"))
)
(textfile (dest "ENVARC:ClassAct/ClassAct")
(append "")
)
)
)
(set caprefs-cmd "C:CAPrefs >NIL:\n")
(startup "CAPREFS"
(prompt (cat #caprefs-startup-1 caprefs-cmd #caprefs-startup-2))
(help #caprefs-message)
(command caprefs-cmd)
)
)
)
(if (or (exists "ClassAct.lha") (exists "ClassAct.lzx"))
(run "C:Delete RAM:ClassAct ALL"
; (delete "RAM:ClassAct" (all)
(prompt #deleting-cltmp)
)
)
(complete classact-complete) )
; ************** END OF CLASSACT INSTALL PROCEDURE. COPY THE BLOCK ABOVE
; ************** TO YOUR CLASSACT APPLICATION INSTALLER.
; ---------------------------------------------------------------------------
(set #welcome "This program will install the ClassAct shared gadget classes on your system.\n")
(complete 0)
(if (< (/ (getversion "exec.library" (resident)) 65536) 37)
(abort "This program requires OS 2.04 or better.") )
(welcome #welcome)
(install-classact)
(complete 100)