Visto che in questo periodo m'ha preso del matto, ho iniziato a creare qualche componente, che ho pure pubblicato nel forum (vedi CTable e CDatabase).
A questo punto mi sono detto: "perchè non creare una sorta di libreria. ma non a livello di sorgenti da inserire nei progetti, ma che segue la logica di quelle che accompagnano Gambas?".
Tempo fà avevo iniziato a studiarmi la creazione dei componenti in Gambas2, ma poi per cause indipendenti da questo, avevo abbandonato.
Dopo aver seguito con attenzione i lavori fatti da Milio, e letto con altrettanta cura la documentazione sul wiki (sempre del nostro Milio), mi sono deciso a riprendere la cosa, e fare qualcosa di concreto.
Oltre a ciò, nel tempo avevo creato una serie di classi e utility, che alla fine ho reputato troppo dispersive, e ho pensato di concentrare il tutto in una libreria (o una serie di librerie), sotto lo stesso tetto.
Così è nata CLib...
Il nome non è stato proprio scelto pensando a qualcosa in particolare, ma solo perchè avevo iniziato a scrivere i sorgenti, prefissando le classi con il carattere "C".
Quello che è in allegato a questo post, è la prima versione della libreria che, in realtà è composta da una serie di file componenti, ma prefissati tutti con il nome di "gb.clib.*".
Ho pensato di separare le classi della libreria in file separati, rendendo la cosa un pò più leggera. Nelle applicazioni si può così selezionare le sole librerie necessarie.
Sempre in allegato ho aggiunto un tar, contenente alcuni esempi significativi, che poi ho usato proprio per i test della libreria.
Il file compresso della libreria contiene i soli file di libreria, e i file necessari all'ambiente ide di gambas, di identificarli e popolare (se è il caso) le toolbar degli oggetti grafici. Alla toolbar, una volta aggiunto un componente della CLib, si aggiungerà un'altra scheda, nominata CLIB, dove verranno posizionati tutti gli oggetti grafici componenti la libreria.
Oltre a questo, stavo pensando che se qualcuno avesse ulteriori idee di nuovi componenti da aggiungere alla libreria, sarebbe una bella cosa. Anche se solo a livello di idea, potrebbe essere interessante per qualcuno implementarla e aggiungerla alla medesima libreria (me stesso compreso).
Sulla base dell'esperienza acquisita, cercherò di implementare questa libreria aggiungendo componenti già fatti, opportunamente aggiustati per lo scopo. Questo lo stò già attuando, estrapolando pezzi di codice da pgDesigner e altre cose che ho fatto (vedi CDatabase).
Per finire, e sempre nel file compresso della libreria, trovere uno script che ho opportunamente creato per installare i componenti, secondo lo schema imposta da Gambas. Devo però avvertire che lo script è stato testato su Fedora, per cui se qualcuno trova problemi con la sua distribuzione, me lo faccia sapere, e cercheremo di aggiustarlo in mod da renderlo funzionante su tutte le distribuzioni Linux. Dal canto mio, stò mettendo in piedi qualche ambiente virtuale per fare io stesso dei test.
L'installazione è relativamente semplice, è sufficiente scaricare il file compresso e decomprimerlo in una cartella temporanea. Dopo di che, si deve eseguire lo script "clib-install.sh" come utente root (per gli ubuntiani usare ovviamente sudo). Lo script poi farà il resto, copiando i file nelle giuste cartelle di sistema.
NOTA BENE: dsato che, come ho accennato pocanzi, lo script è stato testato solo su Fedora, sarebbe bene dargli un'occhiata, evidenziando le directory su cui lavora e, magari segnalandomi in anticipo eventuali discordanze. In realtà, se lo script non trova le directory giuste dovrebbe non fare nulla, e emettere solo errori. COmunque è bene dargli un'occhiata prima. Tenete presente che non mi assumo responsabilità su eventuali casini...
Aspetto le vostre critiche e impressioni, oltre che suggerimenti...