Dopo aver visto qualche giorno fa questo articolo su TuxJournal, dapprima la mia esclamazione fu “che schifo”.. ma ci ho ripensato in questi giorni, e devo dire che l’esclamazione più giusta è “che schifo, dove andremo a finire?”.
Per carità, sono il primo che è felice quando escono programmi con interfaccia grafica che ti evitano di usare il terminale, non sono un patito della tastiera ( a meno che non si tratta di programmazione ) e ben vengano click in più che aiutano i tendini della mia mano ad andare in crisi tra qualche anno. Ma ad un certo punto poi si esagera.
Soprattutto se devo ritrovarmi installazioni del genere che fanno tanto “Windows eXPerience”, della serie “Da oggi più sicuro, veloce e facile da usare!”.. Frasi che si commentano da sole e che sanno tanto da presa per il culo. Per il momento ho deciso che me ne sbatterò e farò l’upgrade alla prossima versione, ma se deve continuare così quest’utontontimento di ubuntu penso che ritornerò allegramente a Debian testing\sid.
E che cazz!
P.s.: Sembra una sfogo solo riguardante l’interfaccia grafica, ma in realtà questa è solo la punta dell’iceberg di tante piccole cose che si sono andate accumulando in questi anni.
…chi non legge mai un README di un programma e si lamenta se non si installa
…chi inquina e spamma sul web per fare domande su programmi o servizi la cui domanda si trova nelle prime 10 domande delle FAQ
…chi non prova nemmeno a cercare 2 secondi da solo la soluzione al proprio problema prima di chiedere
…chi chiede aiuto e dopo 10 minuti riesce a risolvere da solo
…chi chiede aiuto e non ascolta le risposte
…chi bolla un programma come “inutile” o “non funzionante” solo perchè deve fare un click in più per fare ciò che vuole
…chiunque sminuisca il lavoro degli altri, importante o inutile che sia
…chi non aiuta, non pensando che forse senza coloro che aiutano non saprebbe ciò che sa adesso
…i gruppi che si autocompiacciono del proprio lavoro e etichettano come incapace chiunque gli dia consigli per migliorarlo
…chi non dà soddisfazioni
…chi si lamenta se qualcosa in una comunità va male, ma è il primo a non fare nulla per migliorare la situazione
…chi fornisce la così detta “pappa pronta” togliendo ogni gusto di sperimentare
…chi si rassegna
…chi odia e forse odio anche me stesso, ma solamente odiando e incazzandosi contro qualcosa si riesce veramente a creare qualcosa di nuovo, a sconvolgere il normale equilibrio della vita quotidiana trasformato in monotonia e arrendevolezza.
Ammiro chi sa di combattere per una causa persa in partenza o in una battaglia senza fine ma sa anche che combattendola giorno per giorno forse, alla fin fine riesce veramente a migliorare le cose.
Salve a tutti, scrivo questo post per informare che ho aggiornato la versione di wordpress utilizzata da questo blog alla versione 2.8.4 oltre a ciò ho disabilitato il plugin che permetteva di rispondere ai commenti e visualizzare i commenti a cascata in quanto li inseriva sballati rispetto al layout del blog, per questo motivo i commenti ora saranno tutti sullo stesso livello uno sotto l’altro, dal meno recente al più recente ed eventuali commenti inseriti nei vecchi articoli col vecchio sistema a cascata sono stati automaticamente riordinati quindi potreste trovare qualche piccola difficolta a leggere i commenti di 3/4 puntate delle gtk+.
Per il resto non penso ci siano altre “controindicazioni”.
Ciauz
P.s.: Applicato anche un nuovo tema, purtroppo a larghezza fissa ma molto più riposante per gli occhi.
Come promesso qualche giorno fa ecco la guida alle gtk+ riguardante i menu, questa lezione sarà un po’ diversa in quanto invece di spiegare solamente le singole funzioni o eventuali particolari che tralascerò mi concentrerò sul spiegare passo passo la creazione di un menu facendo riferimento allo stile che adotto io per crearli ( una volta poi studiate e capite le funzioni ognuno sarà libero di creare un proprio stile con cui si trova meglio ).
Costruiamo un semplice menu
Prima di iniziare con menu più articolati vorrei iniziare con un piccolissimo menu giusto per vedere le funzioni principali. Per iniziare abbiamo bisogno dei seguenti widget:
1
2
3
| GtkWidget *window;
GtkWidget *bar;
GtkWidget *file, *view, *help; |
Dunque, innanzitutto bisogna creare la barra in cui memorizzare i singoli menu, l’unica funzione utilizzabile è gtk_menu_bar_new () che non riceve argomenti e restituisce il widget che punta alla nuova barra di menu. Una barra di menu può avere come attributo il tipo di ordinamento dei vari widget che può essere uno dei seguenti:
- GTK_PACK_DIRECTION_LTR -> Le varie voci del menu saranno messe da sinistra verso destra ( quando non si imposta nessuna di queste opzioni questo è il comportamento predefinito ).
- GTK_PACK_DIRECTION_RTL -> Le voci saranno orientate da destra verso sinistra.
- GTK_PACK_DIRECTION_TTB -> Le voci saranno orientate dall’alto verso il basso.
- GTK_PACK_DIRECTION_BTT -> Le voci saranno orientate dal basso verso l’alto.
Una volta scelto il tipo di orientamento che si vuol dare agli elementi si può utilizzare la funzione gtk_menu_bar_set_pack_direction () nel seguente modo:
1
2
| bar = gtk_menu_bar_new ();
gtk_menu_bar_set_pack_direction (GTK_MENU_BAR (bar), GTK_PACK_DIRECTION_BTT); |
Siamo ancora all’inizio del lavoro, perchè ora dovremo creare: i menu grafici principali ( quelli che si vedono nella barra dei menu ) e i menu astratti ognuno dei quali bisognerà collegarlo a un menu grafico principale così da poter inserire gli elementi ( o meglio le operazioni ) di ogni singolo menu. Dunque partiamo con solo una barra di menu con i menu grafici senza sotto-menu:
1
2
3
4
5
6
7
8
| file = gtk_menu_item_new_with_label ("File");
gtk_menu_shell_append (GTK_MENU_SHELL (bar), file);
view = gtk_menu_item_new_with_label ("Visualizza");
gtk_menu_shell_append (GTK_MENU_SHELL (bar), view);
help = gtk_menu_item_new_with_label ("Aiuto");
gtk_menu_shell_append (GTK_MENU_SHELL (bar), help); |
I menu principali della barra solitamente si crea con solo il testo, senza utilizzare checkbutton, radiobutton o icone associate come invece succede per le voci del menu, per fare ciò si utilizza come si può vedere la funzione gtk_menu_item_new_with_label () che riceve come argomento il label da utilizzare e ritorna il widget riguardante il menu principale da inserire nella barra dei menu.Un menu principale si può anche allineare a destra ( mentre l’azione predefinita che eseguono le gtk+ è quella di allinearli a sinistra ) tramite la funzione gtk_menu_item_set_right_justified ().Continuando, per inserire poi il menu nella barra si utilizza la funzione gtk_menu_shell_append () per inserire il nuovo menu in coda agli altri, gtk_menu_shell_prepend () per inserirlo prima degli altri o in alternativa gtk_menu_shell_insert () per impostare manualmente il punto in cui inserirlo, questa funzione come si può immagine oltre ai primi due parametri ( GtkMenuShell che sarà la nostra barra convertita con la macro GTK_MENU_SHELL () e il GtkWidget rappresentate il nostro menu principale ) anche un intero che rappresenta la posizione in cui inserire il menu che va da 0 ( inizio ) a N-1 ( dove N è il numero dei menu inseriti ).Per velocizzare le operazioni di inserimento delle voci dei vari menu nella prossima puntata creeremo delle funzioni apposite perchè come potete immaginare richiamare tante funzioni per ogni singola operazione rende il lavoro di creazione lungo, stancante e poco mantenibile.
Fine Diciannovesima Puntata
Preferisco fermarmi qui per ora perchè inserire le voci sarà abbastanza lungo da spiegare.
Ciauz
Salve a tutti, sono ritornato da qualche giorno dalle vacanze e già mi ritrovo catapultato sui banchi di scuola a studiare elettronica e telecomunicazioni ( o elettrotecnica e automazione.. la scuola è un po’ indecisa, tra 1 settimana dovrei sapere qualcosa di più, ma alla fin fine le materie sono uguali )
Vacanze andate benissimo e ultimamente mi sto divertendo a configurare un eeepc 4G della Asus, ed a proposito di questo argomento devo dire che xandros è il sistema operativo più inutile, insensato, incoerente, inusabile e inefficiente della storia dell’informatica.
Tralasciando questo breve aggiornamento sulla mia vita informo che questo fine settimana dovrei riuscire a trovare il tempo per scrivere la nuova guida alle gtk+ e l’argomento per cui ho optato è stato quello dei menu.
Quindi a tra poco
HdS619.net si rinnova per l’estate cambiando grafica, la nuova presenta molti vantaggi. Oltre ad essere più semplice, con colori più rilassanti e minimale, non è più a larghezza fissa come il vecchio sito ma a larghezza variabile che si adatta alla larghezza del browser ( larghezza minima richiesta 700 pixel ) ciò comporta più spazio per i contenuti in particolari per i sorgenti che ora sono liberi di respirare
Altra novità riguarda Himages che cambia “motore” passando dalle gd ( utilizzando il php ) a imel ( utilizzando una cgi scritta in c ) questo porta novità come la possibilità di applicare effetti all’immagine e l’opzione per aggiungere un antialias ( leggera sfocatura per nascondere i difetti ) dell’immagine di anteprima così da migliorare la qualità grafica.Buon estate a tutti ne approfitto per annunciare che sarò via dal 14 fino al 30 agosto, per le puntate alle gtk+ ricominceremo a settembre.Ciauz
Rilasciata Imel 0.2.2 ( Imel 0.2.1, Documentazione di Imel Completata ), questa versione comprende più che altro novità sui formati che portano l’introduzione di TIFF ( Con il supporto alla compressione ) e WBMP, il miglioramento del salvataggio in png che permette ora anche l’interlacciamento adam7 e la possibilità di caricare un’immagine ppm anche da stringa cioè la possibilità di passare un contenuto magari già caricato da sè di un immagine ppm per generare un immagine di imel salvabile poi in altri formati.
Come altre novità c’è una nuova funzione per il disegno ( imel_draw_blend () ) che permette di disegnare una sfumatura orizzontale o verticale, una funzione per sommare\sottrarre o impostare tutti i livelli di un immagine ad una stessa cifra\per una stessa cifra ( imel_image_change_level () ) e una funzione per applicare matrici di convoluzione ( imel_image_apply_convolution () ).
Inoltre sono state inseriti tanti bei define che potete trovare descritti nella documentazione, precisamente in questa pagina, ed eliminati tutti i warning in fase di compilazione ( compilando con -Wall -ansi -pedantic ).
Byeee
Pacchetto: http://www.hds619.net/imel/imel-0.2.2.tar.bz2
La documentazione e i sorgenti “sfusi” sono sempre allo stesso link
P.s.: Nel pacchetto di questa versione trovate anche la libreria statica e dinamica pre-compilata, e poi non dite che non vi penso
Aggiornamento (22/07/2009): Pacchetto aggiornato inserendo la funzione imel_image_apply_convolution () e con i warning in fase di compilazione eliminati.
Si continua a parlare di gtk+, vedo che durante queste guide ho iniziato ad affascinare molte ( rispetto a quanto mi aspettavo all’inizio ) persone e ne son contento
Dopo la mia piccola riflessione iniziale di autoapprezzamento, possiamo continuare l’argomento textview affrontando velocemente l’ultimo argomento per poi poter finalmente passare ad altro.
GtkTextTag
I tag forse qualcuno di voi può già intuire cosa siano, per chi non lo sapesse lo spiego non preoccupatevi. Sono delle “entità” astratte che permettono di applicare degli effetti al testo come ad esempio il grassetto, evidenziazione, colore, ecc.. Non sono così particolari come utilità, mi è capitato più volte di aver bisogno ad esempio della possibilità di evidenziare del testo per far risaltare ad esempio le parole durante una ricerca di qualche parola cosa non fattibile nel caso i tag non esistessero.
Prosegui la lettura…
Ok, continuiamo a parlare di textview occupandoci questa volta del buffer chiamato GtkTextBuffer.
Iniziamo guardando le due azioni principali che di solito si eseguono: ottenere il testo inserito, inserire del nuovo testo ed eliminare parti di testo.
- Ottenere del testo:
In questo caso ci viene in aiuto la funzione gtk_text_buffer_get_text () che richiede il buffer del testo, il punto iniziale, il punto finale e se ottenere anche i “caratteri invisibili” ( sono presenti quando si inserisce un’immagine o un widget o altre cose all’interno della textview cose che noi tralasceremo ).
Prosegui la lettura…
Commenti recenti