Creiamo oggetti con il REXX


Più volte abbiamo detto che la WPS (Workplace Shell) di OS/2 non è una semplice interfaccia grafica, ma un'interfaccia ad oggetti. Attraverso il menu contestuale, gli oggetti della cartella Maschere e il blocco delle impostazioni degli oggetti stessi, possiamo interagire con le proprietà degli oggetti o creare nuovi oggetti. Ci sono però alcuni casi in cui è necessario cambiare impostazioni normalmente non accessibili o in cui si può avere l'esigenza di cambiare le impostazioni di una serie di oggetti o di crearne nuovi automatizzando l'operazione tramite un file batch. In questi casi ci viene in soccorso il REXX con le sua libreria di estensioni REXXUTIL.DLL.

Diverse sono le funzioni che ci permettono di interagire con gli oggetti della WorkPlace Shell:

Purtroppo la documentazione di alcune di esse è piuttosto scarna al punto da renderle quasi inutilizzabili a chi non disponga della documentazione del Toolkit di OS/2.

In questo articolo esamineremo in particolare la sintassi di SysCreateObject() relativa alla creazione di Cartelle e oggetti Programma. Vedremo poi come utilizzare i parametri relativi al SETUP dell'oggetto creato con la funzione SysSetObjectData() mentre rimandiamo ai prossimi numeri la trattazione relativa agli altri oggetti, alle altre funzioni e al file \OS2\INI.RC da cui si possono ricavare informazioni preziose riguardo alle impostazioni degli oggetti creati durante l'installazione del sistema.

Sommario


Le funzioni RexxUtil

Perchè sia possibile usare una qualsiasi delle funzioni precedentemente menzionate è necessario caricare in memoria le funzioni stesse.
La sintassi riportata nella documentazione in linea è:

call RxFuncAdd "nomeFunzione", "RexxUtil", "nomeFunzione"
per caricare una particolare funzione è:
call RxFuncAdd "SysLoadFuncs", "RexxUtil", "SysLoadFuncs"
call SysLoadFuncs
per caricare tutte le funzioni presenti nella DLL.

Considerando che, una volta caricate, le funzioni sono accessibili per tutte i processi, data l'efficiente gestione della memoria da parte del sistema, nella maggior parte dei casi conviene creare uno script REXX che carichi solo le REXXUTIL, inserendone una copia collegata nella cartella di Avviamento.
Nel caso la memoria a disposizione sia limitata conviene caricare le funzioni volta per volta inserendo nello scipt, prima della chiamata di qualsiasi funzione RexxUtil:

if RxFuncQuery('SysLoadFuncs') then do
   call RxFuncAdd 'SysLoadFuncs', 'RexxUtil', 'SysLoadFuncs'
   call SysLoadFuncs
   end
Nello stesso caso, per risparmiare al massimo sull'impiego della memoria si potrebbe aggiungere alla fine dei propri script:
call SysDropFuncs
per liberare la memoria del sistema dalle funzioni RexxUtil.
E' pero' necessario notare che questo comando rende inaccessibili dette funzioni per qualsiasi altro processo: sia avviato in seguito, che attivo al momento della chiamata di SyDropFuncs().
Per evitare problemi agli utenti, nel caso si voglia distribuire il proprio script REXX, è perciò consigliabile evitare SyDropFuncs() e, nel caso si riscontrino problemi con altri script REXX, conviene controllare che uno script precedente non abbia disabilitato le funzioni di utilità!

SysCreateObject()

La sintassi è:

result = SysCreateObject(classname, title, location, [setup], [option])
dove i parametri racchiusi tra "[]" possono essere omessi.

Il valore restituito dalla funzione, result è uguale a 1 nel caso l'oggetto venga creato, 0 nel caso contrario.

L'ultimo parametro, option, indica l'azione da intrapredere se l'oggetto che si vuole creare esiste già. I valori possibili sono:

FAIL
l'oggetto non viene creato se già esiste e SysCreateObject() restituisce il valore di 0. Questo è il valore di default, cioè il comportamento della funzione nel caso il parametro option venga omesso.
REPLACE
l'oggetto eventualmente preesistente viene sostituito dal nuovo.
UPDATE
le impostazioni dell'oggetto eventualmente preesistente vengono aggiornate secondo quelle del parametro setup del nuovo oggetto.
Dato che viene interpretata solo la prima lettera di option, sarà sufficiente specificare solo "F", "R" o "U".

Prima di esaminare gli altri parametri è opportuno chiarire il concetto di classe.

Le classi

Gli oggetti della Workplace Shell, le icone con cui l'utente interagisce, sono istanze delle varie classi della Workplace Shell.
Le classi della Workplace Shell sono oggetti System Object Model (SOM) discendenti dalla classe base WPObject da cui derivano le tre classi principali:

Ogni oggetto eredita le proprietà dell'oggetto da cui discende, modificandole o aggiungendo a queste le sue nuove proprietà. Qui di seguito vediamo la gerarchia delle classi predefinite valida per la versione 4 di OS/2.
 SOMObject
   +---SOMClass
   +---SOMClassMgr
   |    --WPClassManager
   +---WPObject
         +-----WPAbstract
         |     +-- WPClock
         |     +-- WPCountry
         |     +-- WPDisk
         |     +-- WPLaunchPad
         |     +-- WPKeyboard
         |     +-- WPMouse
         |     +-- WPPalette
         |     |     +-- WPColorPalette
         |     |     +-- WPFontPalette
         |     |     --- WPSchemePalette
         |     +-- WPPower
         |     +-- WPPrinter
         |     |     --- WPRPrinter
         |     +-- WPProgram
         |     +-- WPShadow
         |     |     --- WPNetLink
         |     +-- WPShredder
         |     +-- WPSound
         |     +-- WPSpecialNeeds
         |     +-- WPSpool
         |     +-- WPSystem
         |     --- WPWinConfig
         +-- WPFileSystem
         |     +-- WPDataFile
         |     |     +-- WPHtml
         |     |     +-- WPIcon
         |     |     +-- WPImageFile
         |     |     |      --- WPBitmap
         |     |     +-- WPMet
         |     |     +-- WPPif
         |     |     +-- WPPointer
         |     |     +-- WPProgramFile
         |     |     |       --- WPCommandFile
         |     |     --- WPUrl
         |     +-- WPFolder
         |           +-- WPDesktop
         |           +-- WPDrives
         |           +-- WPHost
         |           +-- WPHwManager
         |           +-- WPMinWinViewer
         |           +-- WPNetgrp
         |           +-- WPNetwork
         |           +-- WPRootFolder
         |           +-- WPServer
         |           +-- WPSharedDir
         |           +-- WPStartup
         |           +-- WPTemplates
         |           --- WPUrlFolder
         +-- WPTransient
               +-- WPJob
               +-- WPDevice
               |     +-- WPDevAudio
               |     +-- WPDevBus
               |     +-- WPDevCDRom
               |     +-- WPDevCPU
               |     +-- WPDevDiskette
               |     +-- WPDevDisplay
               |     +-- WPDevHarddrive
               |     +-- WPDevKeyboard
               |     +-- WPDevMemory
               |     +-- WPDevMouse
               |     +-- WPDevParallel
               |     +-- WPDevPeriph
               |     +-- WPDevSerial
               |     +-- WPDevTape
               |     --- WPDevTimer
               +-- WPPort
               +-- WPPdr
               --- WPQdr

Il parametro classname in SysCreateObject()

Nella funzione SysCreateObject() il parametro classname rappresenta il nome della classe dell'oggetto. La classe identifica il tipo di oggetto. Una cartella (in inglese folder) è un oggetto di classe WPFolder, mentre un programma è un oggetto di classe WPProgram o di classe WPProgramFile per quanto riguarda il file fisico.
Oltre alle classi create durante l'installazione del sistema operativo, qualsiasi programma puo' installare nuove classi di oggetti. Ancora una volta il REXX ci viene in soccorso con la funzione SysQueryClassList() che permette di avere un elenco completo delle classi installate nel sistema:

/* CLASSIDX.CMD * (c) 1996 Alessandro Cantatore * Team OS/2 Italy */

/* carica le funzioni di utilità se non sono già in memoria */
if RxFuncQuery('SysLoadFuncs') then do
   call RxFuncAdd 'SysLoadFuncs', 'RexxUtil', 'SysLoadFuncs'
   call SysLoadFuncs
   end

say " Lista delle classi installate:"
say " Num: Classe:               DLL:"
rc = SysQueryClassList("class.")
do i = 1 to class.0
   say " "left(i, 5)""left(subword(class.i, 1, 1), 20)" "subword(class.i, 2)
   end
exit
Creato il file CLASSIDX.CMD sarà sufficiente avviarlo per ottenere una lista delle classi installate. Dal momento che la qunatità di classi installate è spesso maggiore di quanto pensiamo può essere utile ridirezionare l'uscita del comando verso MORE o verso un file digitando in una sessione comandi OS/2:
CLASSIDX | MORE
oppure
CLASSIDX > Classi.Txt
per ottenere nel file Classi.Txt una lista completa delle classi installate.
In questo articolo tratteremo solo gli oggetti cartella (WPFolder) e programma (WPProgram) rimandando in futuro la trattazione di altri tipi di oggetto.

Il titolo dell'oggetto

Questo parametro rappresenta semplicemente il nome relativo all'icona dell'oggetto, come viene visualizzato sullo schermo e che in alcuni casi, come quando si rinomina un oggetto tramite la riga di comando, può essere differente dal nome del file fisico. Caratteri non validi per il nome del file sono invece validi per il nome di un oggetto, che può, per esempio contenere caratteri come "\" o "/" o caratteri di "a capo".
Per includere il carattere di "a capo" nel titolo di un oggetto si deve usare la coppia di caratteri esadecimali 0d0a come segue:

Title = "Nome di un" || "0d0a"x || "oggetto spezzato" || "0d0a"x || "su più righe"
Per comodità conviene dichiarare una variabile che raggruppi i due caratteri di "a capo". L'esempio seguente è perfettamente equivalente al precedente:
newline = "0d0a"x
Title = "Nome di un"newline"oggetto spezzato"newline"su più righe"

Posizione di un oggetto

Questa indica la posizione in cui si vuole che l'oggetto sia creato. Il modo più semplice per rappresentarla è tramite il percorso completo della directory desiderata:

"C:\SCRIVANIA\PROGRAMMI"
Nel caso si voglia creare uno script da utilizzare su più sistemi, può essere utile usare l'ID dell'oggetto che per gli oggetti predefiniti è quasi sempre la stessa in tutte le versioni di OS/2.
L'ID di un oggetto viene sempre rappresentata in caratteri maiuscoli racchiusi tra la coppia di caratteri "<>". L'ID della Scrivania di OS/2 (Desktop nella versione inglese) è di solito <WP_DESKTOP>.
L'ID degli oggetti creati durante l'installazione del sistema operativo possono essere ricavate dal file \OS2\INI.RC.
Volendo conoscere l'ID di tutti gli oggetti presenti correntemente nel sistema (alcune ID potrebbero però far riferimento ad oggetti presenti su drive rimovibili, come floppy o CD ROM, e quindi non essere attualmente presenti) si può usare ancora il REXX:
/* ListObj.cmd lista le ID degli oggetti installati nella WPS */
/*    (c) 1996  *  Alessadro Cantatore  *  Team OS/2 Italy    */

arg option

if RxFuncQuery("SysLoadFuncs") then do
   call RxFuncAdd "SysLoadFuncs", "RexxUtil", "SysLoadFuncs"
   call SysLoadFuncs
   end

parse value SysTextScreenSize() with row .
call SysCls
if SysIni("USER", "PM_Workplace:Location", "ALL:", "objId.") \= "ERROR:" then
   do i = 1 to objId.0
      say objId.i
      if  i//(row - 3) = 0 & option = P then do
         say
         say " Premere un tasto qualsiasi per continuare"
         call SysGetKey("NOECHO")
         call SysCls
         end  /* do */
      end  /* do */
else do
   say
   say " Impossibile accedere al file OS2.INI!"
   end /* do */
exit
Digitando
LISTOBJ P
dalla riga di comando otterremo un elenco completo delle ID attualmente riconosciute dal sistema. Cos'altro possiamo fare con questi strani nomi? Per esempio possiamo aprire gli oggetti ad essi associati! Sempre usando il REXX ovviamente:
/* OPENOBJ.CMD * (c) 1996 - 1997 Alessandro Cantatore * Team OS/2 Italy    */
/* Apre l'oggetto specificato come parametro o la directory corrente nel   */
/* caso non si sia introdotto alcun parametro                              */

parse arg toBeOpened
if toBeOpened = '' then
   toBeOpened = Directory()

if RxFuncQuery('SysLoadFuncs') then do
   call RxFuncAdd 'SysLoadFuncs', 'RexxUtil', 'SysLoadFuncs'
   call SysLoadFuncs
   end

/* cancella eventuali caratteri " iniziali e finali */
toBeOpened = strip(toBeOpened, "B", '"')

/* se l'ID dell'oggetto non comprende i caratteri < > li aggiunge */
if (left(toBeOpened, 1) \= "<" &,
   substr(toBeOpened, 2, 1) \= ":") then
   toBeOpened = "<"toBeOpened">"

if ( \ SysOpenObject(toBeOpened, 'DEFAULT', 'TRUE')) then do
   call beep 880, 200
   say " Impossibile aprire" toBeOpened
   exit 2
   end  /* Do */
exit 0
Provate per esempio a vedere cosa succede digitando:
OPENOBJ WP_CLOCK
oppure
OPENOBJ WP_KLDK
Con OPENOBJ.CMD è possibile aprire un oggetto anche digitando il percorso completo del file corrispondente. Avviando OPENOBJ.CMD senza alcun parametro apriremo invece la directory corrente. Per quanto riguarda le ID degli oggetti, nel caso si voglia usare il nome completo (per esempio <WP_CLOCK>) è necessario includerlo tra virgolette per evitare che l'interprete dei comandi valuti "<" e ">" come ridirezionatori del input/output (per esempio OPENOBJ "<WP_CLOCK>").

Impostazioni dell'oggetto

Questo rappresenta il parametro più complesso in quanto dipendente anche dalla classe dell'oggetto.
E' sempre nel formato NOMECHIAVE=VALORE con il carattere ";" come separatore di più nomi chiave:

setup = "ALWAYSSORT=YES;BACKGROUND=C:\OS2\BITMAP\OS2LOGO.BMP,S,3,I;DEFAULTVIEW=ICON"
I parametri impostabili di un oggetto includono, oltre alle proprietà proprie dell'oggetto stesso, anche quelle dell'oggetto da cui discendono. Le classi che trattiamo in questo articolo, WPFolder e WPProgram discendono entrambe da WPObject ereditando le proprietà di quest'ultimo.

Impostazioni degli oggetti della classe base WPObject

La classe WPObject è la classe base: da essa discendono tutte le altre classi che da essa ereditano l'insieme di parametri impostabili quì di seguito riportato. I nomi chiave o valori seguiti dal carattere '*' sono validi per la versione 4 e successive e possono esere validi per le versioni precedenti secondo il livelo raggiunto tramite fixpak.

Nome chiave        Valore         Descrizione

CCVIEW             DEFAULT        Concurrent View indica l'azione da eseguire
                                  quando viene aperto un oggetto già aperto.
                                  Il valore DEFAULT indica di seguire le
                                  impostazioni generali del sistema.
                   YES            Questo implica che viene aperta una nuova
                                  finestra dell'oggetto per ogni azione di
                                  apertura. Per esempio se una cartella viene
                                  aperta più volte, o con un doppio click sulla
                                  sua icona o selezionando aprire dal menu
                                  contestuale, verranno aperte ogni volta nuove
                                  finestre.
                   NO             Questo implica che se c'è una finestra
                                  dell'oggetto aperta in precedenza, questa viene
                                  resa attiva e visualizzata sopra tutte le altre
                                  finestre.

DEFAULTVIEW        SETTINGS       Imposta l'apertura del blocco impostazioni come
                                  modalità di apertura di default.
                   id             Un valore spefico della classe.
                   DEFAULT        Il valore di default per la classe.

HELPLIBRARY        filename       Imposta la libreria di help.

HELPPANEL          id             Imposta la pagina di Help di default per l'Help
                                  specifico dell'oggetto.

HIDEBUTTON                        Il valore di default è quanto specificato nei
                                  settaggi globali del sistema.
                   YES            Nella finestra viene visualizzato il pulsante
                                  per nascondere invece di quello di
                                  minimizzazione.
                   NO             Viene visualizzato il pulsante di
                                  minimizzazione.

ICONFILE           filename       Imposta l'icona dell'oggetto ricavandola da un
                                  file icona.

ICONPOS            x,y            Imposta la posizione iniziale di un oggetto
                                  nella cartella che lo contiene. x e y sono
                                  coordinate percentuali della dimensione della
                                  cartella.

ICONRESOURCE       id,module      Imposta l'icona dell'oggetto ricavandola da una
                                  risorsa contenuta in una DLL.

LOCKEDINPLACE*     YES            Rende l'icona dell'oggetto fissa, cioè non
                                  movibile, nell'ambito della cartella che la
                                  contiene.
                   NO             Questo è il valore di default.

MENUITEMSELECTED*  menu-item-ID   Simula la selezione della voce del menu
                                  specificata dal menu contestuale dell'oggetto.

MENUS*             SHORT          Riduce il numero delle voci visualizzate nel
                                  menu contestuale dell'oggetto.
                   DEFAULT        Imposta il menu contestuale dell'oggetto in
                                  modo da rendere visibili tutte le voci.
                                  Questo è il valore di default.

MINWIN                            Il valore di default dipende dall'impostazione
                                  globale del sistema.
                   HIDE           La vista dell'oggetto viene nascosta quando
                                  l'oggetto viene minimizzato.
                   VIEWER         L'oggetto viene ridotto ad icona e visualizzato
                                  nella Cartella delle finestre minimizzate.
                   DESKTOP        L'oggetto viene ridotto ad icona e visualizzato
                                  sulla Scrivania.

NOCOPY             YES            Imposta l'oggetto come non copiabile.
                   NO             Questo è il valore di default.

NODELETE           YES            Rende l'oggetto incancellabile tramite la WPS.
                                  (L'oggetto è sempre cancellabile da riga di
                                  comando se è discende dalla classe
                                  WPFileSystem.
                   NO             L'oggetto è cancellabile. Questo è il valore di
                                  default.

NODRAG             YES            Imposta l'oggetto in modo che non possa più
                                  essere trascinato. A differenza di
                                  LOCKEDINPLACE, precedentemente descritto,
                                  l'oggetto non solo non può essere spostato
                                  nell'ambito della sua stessa cartella, ma non
                                  può essere spostato nemmeno in un'altra
                                  cartella o su un altro oggetto.
                   NO             Resetta la precedente impostazione. Questo è il
                                  valore di default.

NODROP             YES            Imposta l'oggetto in modo che non accetti altri
                                  oggetti rilasciati su esso dopo un'operazione
                                  di trascinamento.

                   NO             Resetta la precedente impostazione. Questo è il
                                  valore di default.

NOLINK                            Questo nome chiave è perfettamente equivalente
                                  NOSHADOW.
                   YES            Imposta l'oggetto in modo che non sia possibile
                                  crearne copie collegate (shadow).
                   NO             Resetta la precedente impostazione. Questo è il
                                  valore di default.

NOMOVE             YES            Imposta l'oggetto in modo che non sia possibile
                                  spostarlo in un'altra directory. L'oggetto può
                                  essere solo copiato. A differenza che con
                                  LOCKEDINPLACE l'oggetto può essere spostato
                                  nell'ambito della cartella che lo contiene.
                   NO             Resetta la precedente impostazione. Questo è il
                                  valore di default.

NOPRINT            YES            Imposta l'oggetto in modo che non sia possibile
                                  stamparlo.
                   NO             Resetta la precedente impostazione. Questo è il
                                  valore di default.

NORENAME           YES            Imposta l'oggetto in modo che non sia possibile
                                  rinominarlo.
                   NO             Resetta la precedente impostazione. Questo è il
                                  valore di default.

NOSETTINGS         YES            Imposta l'oggetto in modo che non sia possibile
                                  aprire il suo blocco impostazioni.
                   NO             Resetta la precedente impostazione. Questo è il
                                  valore di default.

NOSHADOW                          I valori accettabili e l'effetto di questa
                                  impostazione sono uguali a NOLINK.

NOTVISIBLE         YES            Questa impostazione rende l'oggetto non
                                  visibile.
                   NO             Resetta la precedente impostazione. Questo è il
                                  valore di default.

OBJECTID           <name>         Imposta una identità permanente per l'oggetto.
                                  L'identità dell'oggetto permane anche se esso
                                  viene spostato o rinominato. L'identità deve
                                  essere una stringa unica (non sono ammessi più
                                  oggetti con la stessa identità) e deve essere
                                  racchiusa tra i caratteri '<' e '>'.
                                  Il valore di default è non avere identità.

OPEN                              Di default gli oggetti creati con
                                  SysCreateObject() o modificati con
                                  SysSetObjectData() non vengono aperti.
                   SETTINGS       Apre il blocco delle impostazioni quando
                                  l'oggetto viene creato o ne vengono modificate
                                  le impostazioni tramite SysSetObjectData().
                   DEFAULT        Apre la vista di default secondo la classe
                                  dell'oggetto.

TEMPLATE           YES            Imposta l'oggetto come maschera (template).
                   NO             Resetta la precedente impostazione. Questo è il
                                  valore di default.

TITLE              Title          Imposta il titolo dell'oggetto.
Esempio:
setup = "TITLE=Pippo;ICONFILE=pippo.ico;HELPPANEL=132;TEMPLATE=YES;NODELETE=NO"

Impostazioni degli oggetti Cartella

Vediamo ora nei dettagli l'insieme dei nomi chiave e dei relativi valori validi per le cartelle.
I nomi chiave o valori seguiti dal carattere '*' sono validi per la versione 4 e successive e possono esere validi per le versioni precedenti secondo il livelo raggiunto tramite fixpak.

Nome chiave             Valore         Descrizione

ALWAYSSORT              YES            La cartella mantiene il suo contenuto
                                       costantemente ordinato.
                                       Ciò può provocare un leggero rallentamento
                                       nelle operazioni di apertura, di
                                       inserimento o rimozione di oggetti nella
                                       cartella.
                        NO             Il contenuto della cartella non viene
                                       mantenuto ordinato.
                                       Questo è il valore di default.

BACKGROUND              N,M,S,B,C      Questo imposta lo sfondo della cartella.
                                       Le lettere N,M,S,B,C indicano:
                                       N = Nome del file dell'immagine. Deve
                                           essere qualificato dal percorso
                                           completo del file di immagine.
                                           Il file di immagine può essere solo
                                           di tipo bitmap per le versioni di
                                           warp precedenti la 4.0. Quest'ultima
                                           versione accetta anche file in formato
                                           gif e jpg.
                                       M = Modalità di visualizzazione.
                                           I valori validi sono:
                                           N = immagine normale (Normal)
                                           T = immagine affiancata (Tiled)
                                           S = immagine in scala (Scaled)
                                       S = fattore di riduzione dell'immagine
                                           variabile da 1 a 20.
                                       B = tipo di sfondo (Background).
                                           I valori validi sono:
                                           I = immagine
                                           C = tinta unita
                                       C = colore di sfondo espresso come
                                           intensità dei 3 colori primari
                                           (rosso, verde e blu) con numeri
                                           variabili da 0 a 255.
                                       Esempi:
                                       BACKGROUND=C:\OS2\BITMAP\OS2LOGO.BMP,S,3,I
                                       imposta C:\OS2\BITMAP\OS2LOGO.BMP come
                                       immagine di sfondo, da rappresentare in
                                       scala ridotta di 3 volte.
                                       BACKGROUND=,,,C,0 128 128
                                       imposta come sfondo una tinta unita i cui
                                       colori primari rosso, verde e blu hanno
                                       un'intensità rispettivamente di 0, 128 e
                                       128.

DEFAULTSORT*            index          Indica il valore di default della voce
                                       "Ordinare" del menu della cartella.
                                       E' rappresentato da un numero che indica
                                       l'ordine nella lista dei possibili valori.
                                       Per esempio 0 indica ordinamento secondo
                                       il Nome, 1 ordinamento secondo il Tipo,
                                       2 ordinamento secondo il Nome reale, ecc.
                                       Il valore di default è 0.

DEFAULTVIEW             ICON           Imposta la modalità di visualizzazione di
                                       default ad icone.
                        TREE           Imposta la modalità di visualizzazione ad
                                       albero.
                        DETAILS        Imposta la modalità di visualizzazione in
                                       modo dettagli.

DETAILSCLASS            classname      Imposta la classe di oggetti di cui si
                                       vogliono visualizzare i dettagli.
                                       La classe di default è WPFileSystem.

DETAILSFONT             fontname       Specifica il tipo di font da usare nella
                                       visualizzazione a dettagli.
                                       Il valore di default è "8.Helv".

DETAILSSHADOWCOLOR*     color          Imposta il colore del testo di un oggetto
                                       per la modalità di visualizzazione a
                                       dettagli. Il valore del colore può essere
                                       rappresentato da un numero variabile da
                                       -2 a 15 per indicare i 16 colori primari
                                       (-2 è il colore di background di default
                                       e -1 è il nero) o dal valore dei tre
                                       colori primari (vedere BACKGROUND).

DETAILSTEXTCOLOR*       color          Imposta il colore del testo di un oggetto
                                       ordinario per la modalità di
                                       visualizzazione a dettagli. Per il valore
                                       vedere sopra.

DETAILSTODISPLAY*       index[,...]    Imposta il tipo di dettagli da
                                       visualizzare per una determinata classe.
                                       L'indice rappresenta, partendo dal
                                       numero 0 l'ordine con cui i nomi dei
                                       dettagli sono visualizzati nella pagina
                                       relativa alla visualizzazione a dettagli
                                       nel blocco delle impostazioni delle
                                       cartelle.
                                       Esempio:
                                       DETAILSTODISPLAY=0,2,3
                                       Visualizza solo l'icona, il nome reale
                                       del file e la sua dimensione.
                                       Il valore di default è la visualizzazione
                                       di tutti i dettagli.

DETAILSVIEW             NORMAL         Indica che nella modalità di
                                       visulizzazione a dettagli le icone hanno
                                       dimensione normale.
                        MINI           Indica di usare icone piccole.
                                       Questo è il valore di default.

ICONFONT                fontname       Specifica il font da usare nella modalità
                                       di visualizzazione a icone.
                                       Per esempio: "10.Helv".

ICONNFILE               index,filename Imposta il nome del file icona da usare
                                       per l'icona della cartella aperta.
                                       "index" deve sempre essere "1".
                                       Esempio:
                                       ICONNFILE=1,D:\ICONS\MYOPEN.ICO

ICONGRIDSIZE*                          Imposta la distanza tra le icone nella
                                       modalità di visualizzazione allineate
                                       secondo una griglia.

ICONFILE                filename       Imposta il nome del file da usare come
                                       icona per la cartella chiusa.

ICONNRESOURCE           index,id,modname Imposta come icona della cartella
                                       aperta una risorsa contenuta in una DLL.
                                       "index" deve essere 1, mentre id
                                       l'identità dell'icona nella DLL.
                                       "modname" è il nome della DLL senza
                                       estensione.
                                       Esempio:
                                       ICONNRESOURCE=1,35,PMWP

ICONSHADOWCOLOR*        color          Imposta il colore del testo dell'icona
                                       delle copie collegate nella modalità
                                       di visualizzazione a icone.
                                       (vedere DETAILSSHADOWCOLOR).

ICONTEXTBACKGROUNDCOLOR* color          Imposta il colore di sfondo del testo
                                       delle icone per tutte le modalità di
                                       visualizzazione. Per i valori validi
                                       vedere DETAILSSHADOWCOLOR.

ICONTEXTCOLOR*          color          Imposta il colore del testo degli oggetti
                                       ordinari. Per i valori validi vedere
                                       DETAILSSHADOWCOLOR.

ICONTEXTVISIBLE*        YES            Imposta la visibilità del testo delle
                                       icone nella modalità di visualizzazione
                                       ad icone.
                                       Questo è il valore di default.
                        NO             Rende il testo delle icone invisibile.

ICONVIEW                s1[,s2,...sn]  Imposta la modalità di visualizzazione
                                       secondo particolari stili.
                                       I valori validi sono:
                                       GRIDDED* o NONGRID*
                                       FLOWED  o NONFLOWED
                                       MINI, NORMAL o INVISIBLE
                                       Il valore di default è NONGRID*,NORMAL

ICONVIEWPOS             x,y,cx,cy      Imposta la posizione iniziale della
                                       cartella sullo schermo. I valori sono
                                       in percentuale delle dimensioni dello
                                       schermo.
                                       L'origine è l'angolo in basso a sinistra
                                       dello schermo.
                                       "x" e "y" indicano la distanza dello
                                       spigolo inferiore sinistro della cartella
                                       dall'origine.
                                       "cx" e "cy" indicano rispettivamente la
                                       larghezza e l'altezza della cartella.

MENUBAR*                YES            In warp 4.0 imposta la visualizzazione del
                                       menu contestuale della cartella sotto la
                                       barra del titolo.
                        NO             Disabilita il menu sotto la barra del
                                       titolo della finestra della cartella.

OPEN                    ICON           Apre la cartella nella modalità ad icone
                                       quando viene creata con SysCreateObject()
                                       o quando le impostazioni vengono cambiate
                                       con SysSetObjectData().
                        TREE           Come sopra, ma apre nella modalità ad
                                       albero.
                        DETAILS        Come sopra ma apre nella modalità di
                                       visualizzazione a dettagli.
                                       Il comportamento di default è di non aprire
                                       la cartella quando viene creata o quando
                                       vengono modificate le impostazioni.

REMOVEFONTS             YES            Ripristina il font di default.
                        NO             Valore di default.

SHOWALLINTREEVIEW*      YES            Nella modalità di visualizzazione ad
                                       albero, oltre che le subdirectory
                                       vengono mostrati anche i file.
                        NO             Valore di default.

SORTBYATTR*             index[,...]    Specifica un la lista delle voci da
                                       visualizzare tramite il submenu ordinare
                                       (vedere DETAILSTODISPLAY).

SORTCLASS               classname      Specifica il tipo di classe cui applicare
                                       il criterio di ordinamento. Il valore di
                                       default è WPFileSystem.

TREEFONT                fontname       Specifica il tipo di font da utilizzare
                                       nella modalità di visualizzazione ad
                                       albero.

TREESHADOWCOLOR*        color          Imposta il colore del testo delle copie
                                       collegate nella modalità di
                                       visualizzazione ad albero (vedere
                                       DETAILSSHADOWCOLOR).

TREETEXTCOLOR*          color          Imposta il colore del testo degli oggetti
                                       ordinari (vedere DETAILSSHADOWCOLOR).

TREETEXTVISIBLE*        YES            Rende visibile il testo delle icone nella
                                       modalità di visualizzazione ad albero.
                                       Questo è il valore di default.
                        NO             Rende il testo delle icone invisibile.

TREEVIEW                s1[,s2,...sn]  Imposta la stile relativo alla modalità
                                       di visualizzazione ad albero.
                                       I valori validi sono:
                                       LINES o NOLINES
                                       INVISIBLE, MINI o NORMAL
                                       Il valore di default è LINES,NORMAL.

WORKAREA                YES            Imposta la cartella come Area di lavoro
                        NO             Questo è il valore di default.

Impostazioni dell'oggetto Programma

L'oggetto Programma fa riferimento ad un file eseguibile allo scopo di permetterne l'avvio tramite un doppio click sulla sua icona. Più oggetti, ognuno con diverse proprietà, possono riferirsi allo stesso eseguibile, in modo da avviarlo secondo le diverse modalità possibili.
Qui di seguito riportiamo l'insieme dei nomi chiave e valori applicabili all'oggetto programma.
I nomi chiave o valori seguiti dal carattere '*' sono validi per la versione 4 e successive e possono esere validi per le versioni precedenti secondo il livelo raggiunto tramite fixpak.

Nome chiave   Valore                     Descrizione

ASSOCFILTER   filters                    Imposta le specifiche dei file associati
                                         con il programma. Valori multipli devono
                                         essere separati con ','.
                                         Esempio:
                                         ASSOCFILTER=*.TXT,*.DOC,*.BAT,*.HTM;

ASSOCTYPE     type                       Specifica il tipo di file associato con
                                         il programma. Si possono specificare più
                                         tipi separandone i valori con ',' come
                                         nell'esempio precedente.

EXENAME       filename                   Il nome del file eseguibile.
                                         Esempio:
                                         EXENAME=C:\OS2\PMCHKDSK.EXE

MAXIMIZED     YES                        Indica che il programma deve essere
                                         avviato massimizzandone la finestra.
              NO                         Questo è il valore di default.

MINIMIZED     YES                        Indica che il programma deve essere
                                         avviato minimizzandone la finestra.
              NO                         Questo è il valore di default.

PROGTYPE      DOSMODE*                   Avvia il programma in un reale ambiente
                                         DOS dopo aver ibernato il corrente
                                         ambiente OS/2.
              FULLSCREEN                 Il programma viene eseguito in una
                                         sessione comandi OS/2 a schermo intero.
              PM                         Il programma viene avviato in una
                                         sessione Presentation Manager, ossia
                                         nell'interfaccia grafica di OS/2.
              PROG_30_STD                Il programma viene avviato in una
                                         sessione WIN-OS/2 a schermo intero in
                                         modalità standard 3.0.
              PROG_31_ENH                Il programma viene avviato in una
                                         sessione WIN-OS/2 a schermo intero in
                                         modalità enhanced 3.1.
              PROG_31_ENHSEAMLESSCOMMON  Il programma viene avviato in una
                                         sessione di tipo WIN-OS/2 finestra in
                                         modalità enhanced 3.1 nella sessione
                                         comune alle altre sessioni WIN-OS/2.
              PROG_31_ENHSEAMLESSVDM     Il programma viene avviato in una
                                         sessione di tipo WIN-OS/2 finestra in
                                         modalità enhanced 3.1 in una sessione
                                         separata dalle altre sessioni WIN-OS/2.
              PROG_31_STD                Il programma viene avviato in una
                                         sessione WIN-OS/2 a schermo intero in
                                         modalità standard 3.1.
              PROG_31_STDSEAMLESSCOMMON  Il programma viene avviato in una
                                         sessione i tipo WIN-OS/2 finestra in
                                         modalità standard 3.1 nella sessione
                                         comune alle altre sessioni WIN-OS/2.
              PROG_31_STDSEAMLESSVDM     Il programma viene avviato in una
                                         sessione i tipo WIN-OS/2 finestra in
                                         modalità standard 3.1 in una sessione
                                         separata dalle altre sessioni WIN-OS/2.
              SEPARATEWIN                Il programma viene avviato in una
                                         sessione i tipo WIN-OS/2 finestra in
                                         una separata VDM.
              VDM                        Il programma viene avviato in una
                                         sessione DOS a schermo intero.
              WIN                        Il programma viene avviato in una
                                         sessione WIN-OS/2 a schermo intero.
              WINDOWABLEVIO              Il programma viene avviato in una
                                         sessione comandi OS/2 in finestra.
              WINDOWEDVDM                Il programma viene avviato in una
                                         sessione in finestra.
              WINDOWEDWIN                Il programma viene avviato in una
                                         finestra seamless WIN-OS/2.

NOAUTOCLOSE   YES                        Lascia la finestra aperta quando il
                                         programma termina.
              NO                         Chiude la finestra alla terminazione
                                         del programma.
                                         Questo è il valore di default.

PARAMETERS    params                     Imposta la lista dei parametri.

SET           XXX=VVV                    XXX è una variabile di ambiente.
                                         VVV è il valore cui impostare la
                                         variabile.
                                         Questo viene usato per specificare le
                                         impostazioni specifiche dei programmi
                                         DOS e WIN-OS/2.
                                         I settaggi che implicano la scelta tra
                                         due valori devono essere posti a 1 o 0.
                                         Esempi:
                                         SET COM_DIRECT_ACCESS=1
                                         SET DOS_DEVICE=D:\OS2\A.SYS,D:\OS2\B.SYS
                                         SET DOS_FILES=40
                                         Per i nomi delle variabili di ambiente
                                         ammesse si veda la pagina delle
                                         impostazioni DOS - WIN-OS/2 del blocco
                                         impostazioni di un oggetto programma.

STARTUPDIR   pathname                    Imposta la directory di lavoro.
Un esempio di una valida stringa di setup per un oggetto programma:
setup = "EXENAME=C:\PIPPO\PIPPO.EXE;PROGTYPE=VDM;" ||,
        "SET COM_DIRECT_ACCESS=1;SET DOS_DEVICE=D:\OS2\MDOS\ANSI.SYS," ||,
        "D:\OS2\MDOS\PIPPO.SYS,D:\OS2\MDOS\PLUTO.SYS;" ||,
        "SET DOS_FILES=40"

SysSetObjectData()

Questa funzione permette di cambiare le impostazioni di un oggetto.

result = SysSetObjectData(name, setup)
Il valore restituito dalla funzione è 1 nel caso l'oggetto sia stato aggiornato e 0 nel caso contrario.

name, il nome dell'oggetto puo' essere semplicemente l'ID di un oggetto (per esempio <WP_DESKTOP>) oppure il nome del file corrispondente, incluso il percorso (per esempio C:\Scrivania).

L'ultimo parametro è perfettamente equivalente al parametro usato da SysCreateObject().

Questa funzione è equivalente, nel caso l'oggetto sia stato precedentemente creato, a SysCreateObject() con il parametro UPDATE e nel caso la stringa di setup di SysSetObjectData() sia costituita da un semplice OPEN=modalità di apertura, è equivalente a SysOpenObject().


a cura di Alessandro Cantatore

- [ Pagina precedente ] - - [ Sommario ] - - [ Just WARP! homepage ] - - [ Pagina successiva ] -