home *** CD-ROM | disk | FTP | other *** search
-
- Introduzione:
-
- L'INTERFACCIA DI VISUALPREFS PER SVILUPPATORI
-
- Documento in preparazione
-
-
- Se sei uno sviluppatore puoi usufruire di certe funzionalità di VisualPrefs.
-
- Anche se non esiste ancora una vera e propria API di VisualPrefs per gli
- sviluppatori è già possibile utilizzare le classi BOOPSI che VisualPrefs
- aggiunge al sistema.
-
- Lo scopo di queste classi è fornire ai programmatori un modo facile di
- ottenere il "look di VisualPrefs" senza dover aspettare che io implementi
- in VisualPrefs un patch per i loro applicativi. ;-)
-
- Attualmente c'è solo una classe:
-
- "tbiclass" - la classe di immagini per la titlebar (titlebar image class)
-
- Questa classe fornisce le immagini più comunemente usate per i gadget
- aggiunti dagli applicativi alla titlebar delle loro finestre. Esempi di
- ciò sono l'onnipresente gadget "iconify" o il gadget "padlock" di DirOpus 5.
-
- Tutti i programmi che usano questa classe riceveranno automaticamente lo
- stesso aspetto per le loro immagini per la titlebar se VisualPrefs è in
- funzione. Probabilmente è meglio che avere miriadi di versioni diverse
- della stessa immagine...
-
- Puoi usare "tbiclass" proprio come "sysiclass"; sono entrambe sottoclassi di
- "imageclass". Un'immagine "tbiclass" può essere creata chiamando NewObject()
- con i seguenti tag:
-
- SYSIA_DrawInfo - Questo è assolutamente necessario. DEVI passare a "tbiclass"
- un puntatore a DrawInfo oppure NewObject() fallirà.
-
- SYSIA_Which - Per specificare quale immagine si vuole; attualmente ci sono
- sei tipi di immagine:
-
- POPUPIMAGE - Immagine per il gadget "pop-up" di MUI
- MUIIMAGE - Immagine per il gadget "settings" di MUI
- SNAPSHOTIMAGE - Immagine per il gadget "snapshot" di MUI
- ICONIFYIMAGE - Immagine per il gadget "iconify"
- PADLOCKIMAGE - Immagine per il gadget "padlock" di DirOpus
- TBFRAMEIMAGE - Immagine vuota (solo contorno) di uso generale
-
- IA_Width, IA_Height - Questi sono riconosciuti solo dal tipo TBFRAMEIMAGE;
- gli altri tipi di immagine li ignorano e hanno sempre
- la stessa dimensione del gadget di profondità.
-
- SYSIA_ReferenceFont - Questo è riconosciuto solo dal tipo TBFRAMEIMAGE;
- gli altri tipi di immagine lo ignorano e hanno sempre
- la stessa altezza del gadget di profondità.
-
- Naturalmente se NewObject() fallisce dovresti fornire una immagine di ripiego
- creata dal tuo programma. Tuttavia intendo rilasciare presto una classe
- "tbiclass" esterna freeware che potrai includere nella distribuzione dei
- tuoi applicativi. Questa classe fornirà le immagini necessarie e verrà
- sostituita automaticamente da quella di VisualPrefs se sarà presente.
- Di conseguenza puoi mantenere molto semplici le tue immagini di ripiego. ;-)
-
- È importante notare che tutte le istanze di immagini "tbiclass" avranno un
- valore di -1 in Image->LeftEdge. Questo non dovrebbe venire modificato e
- dovresti posizionare i tuoi gadget nella titlebar rispettando ciò. Il motivo
- di questo apparentemente strano comportamento è che anche le immagini dei
- gadget di Intuition per la titlebar funzionano in questo modo, e dovremmo
- cercare di mantenere la massima compatibilità con Intuition.
-
- Inoltre assicurati di modificare se necessario la dimensione del tuo gadget
- per adattarla alla dimensione dell'immagine ottenuta.
-
- Un esempio di tutto ciò potrebbe essere:
-
- ...
-
- /* Crea l'immagine */
-
- if (!(iconifyimage = NewObject(NULL,"tbiclass",SYSIA_Which,ICONIFYIMAGE,
- SYSIA_DrawInfo,dri,
- TAG_END)))
- {
- iconifyimage = builtin_iconifyimage;
- }
-
- /* Usa l'immagine */
-
- gad->GadgetRender = iconifyimage;
- ...
-
- /* Libera l'immagine */
-
- if (iconifyimage != builtin_iconifyimage) DisposeObject(iconifyimage);
-
- ...
-
- Questo è tutto. Per ora non ho un vero file include, per cui, se vuoi usare
- "tbiclass" nei tuoi applicativi, per favore inserisci le righe seguenti in
- cima al tuo codice sorgente. :-]
-
- ------ taglia qui ------8<------ taglia qui ------8<------ taglia qui ------
-
- #define POPUPIMAGE (101)
- #define MUIIMAGE (102)
- #define SNAPSHOTIMAGE (103)
- #define ICONIFYIMAGE (104)
- #define PADLOCKIMAGE (105)
- #define TBFRAMEIMAGE (106)
-
- ------ taglia qui ------8<------ taglia qui ------8<------ taglia qui ------
-
- C'è già un applicativo che usa "tbiclass", ViNCEd di Thomas Richter.
-
- Spero che anche tu supporterai "tbiclass" e contribuirai in tal modo a
- dare finalmente un aspetto consistente a tutti i gadget per la titlebar
- usati negli applicativi!
-
- Grazie,
- Massimo Tantignone (tanti@intercom.it)
-
-
-
-