Archivio

Posts Tagged ‘gtk’

Guida gtk+ a puntate ( XXII parte )

17 gennaio 2010 hds619 Nessun commento

Salve a tutti, continuiamo finalmente dopo tanto tempo con la guida alle gtk+ parlando delle preannunciate toolbar. Gestirle è molto molto semplice.

La creazione avviene tramite la funzione gtk_toolbar_new () che non riceve argomenti e ritorna un puntatore a GtkWidget che altro non è che la toolbar.

Una volta ottenuta si possono settare alcune opzioni:

  • gtk_toolbar_set_show_arrow (): questa funzione riceve come argomenti la toolbar e un valore booleano ( TRUE o FALSE, FALSE è l’attributo predefinito ) che permette di visualizzare una freccia nel caso gli elementi inseriti nella toolbar non siano visualizzabili ( ad esempio quando viene ridimensionata la finestra ). Se questo attributo non è presente la finestra non potrà essere ridimensionata meno della larghezza della toolbar.
  • gtk_toolbar_set_orientation (): anch’essa riceve due argomenti come la precedente, il primo è sempre la toolbar mentre il secondo è l’orientamento che vogliamo abbia. I valori disponibili son soltanto due: GTK_ORIENTATION_HORIZONTAL  e GTK_ORIENTATION_VERTICAL ( il predefinito è GTK_ORIENTATION_HORIZONTAL ).
  • gtk_toolbar_set_icon_size (): con questa funzione possiamo stabilire la dimensione predefinita delle icone degli elementi della toolbar. I valori disponibili sono GTK_ICON_SIZE_INVALID, GTK_ICON_SIZE_MENU, GTK_ICON_SIZE_SMALL_TOOLBAR, GTK_ICON_SIZE_LARGE_TOOLBAR, GTK_ICON_SIZE_DND, GTK_ICON_SIZE_DIALOG.
  • gtk_toolbar_set_style (): permette di stabilire lo stile della toolbar passata come primo parametro. Gli stili disponibili sono:
    • GTK_TOOLBAR_ICONS: visualizza solo le icone nella toolbar.
    • GTK_TOOLBAR_TEXT: visualizza solo il testo nella toolbar.
    • GTK_TOOLBAR_BOTH: visualizza il testo e le icone nella toolbar ( il testo sarà sotto le icone ).
    • GTK_TOOLBAR_BOTH_HORIZ: visualizza il testo e le icone nella toolbar ( il testo sarà a fianco le icone ).

Una volta impostati gli attributi alla toolbar possiamo procedere all’inserimento degli elementi. Come elementi abbiamo i pulsanti normali, i toggled, i separatori, ecc..

Prosegui la lettura…

Guida gtk+ a puntate ( XXI parte )

23 novembre 2009 hds619 2 commenti

Rieccoci qua, pronti a finire l’argomento “menu”. In questa puntata più che altro vedremo delle funzioni aggiuntive per la creazione di menu, lo dico così a chi si trova già bene con le funzioni spiegate nella guida precedente può saltare la lettura e non perdere tempo :) .

Dunque la prima funzione che andiamo a vedere serve per “staccare” un menu e visualizzarlo in una finestra separata. Vediamo prima il codice, poi l’immagine di esempio:

GtkWidget *
menu_tearoff_append (GtkMenu * menu)
{
 GtkWidget *widget;
 
 widget = gtk_tearoff_menu_item_new ();
 gtk_menu_shell_append (GTK_MENU_SHELL (menu), widget);
 gtk_widget_show (widget);
 
 return widget;
}

Prosegui la lettura…

Categorie:Guide veloci Tag: ,

Guida gtk+ a puntate ( XIX parte )

10 settembre 2009 hds619 Nessun commento

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 ;)

Guida gtk+ a puntate ( XVIII parte )

21 luglio 2009 hds619 Nessun commento

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…

Guida Gtk+ a puntate ( XVII parte )

7 luglio 2009 hds619 Nessun commento

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…

Guida Gtk+ a puntate ( XVI parte )

22 giugno 2009 hds619 2 commenti

20 giorni di silenzio.. son tanti. L’estate, intesa come periodo di relax, per me deve ancora iniziare purtroppo.

Vabbè, non ho molta voglia di parlare a quest’ora. Occupiamoci di questa puntata alle Gtk+. Oggi parliamo del widget “GtkTextView” ovvero il widget che permette di ottenere dall’utente interi testi ( diciamo che si può considerare grosso modo un GtkEntry multilinea ).

Vista Testuale ( GtkTextView )

Una GtkTextView è il widget che potete vedere nell’immagine a fianco. Molto utile quando si deve richiedere all’utente non una stringa ma un intero testo su più linee. La sua creazione è molto semplice e ci dà l’opportunità di creare anche dei tag, ovvero creare degli effetti al testocome l’evidenziazione di alcune parole quando si cerca una stringa, delle stringhe sottolineate o in grassetto o in corsivo e così via..

Per completezza bisogna dire che questo widget sostituisce il vecchio GtkText ormai deprecato e ne sconsiglio vivamente l’utilizzo in quanto è molto, ma molto lento e poco gestibile. Questo nuovo widget è composto da due parti, la parte “grafica” chiamata GtkTextView e la parte del buffer del testo preso in input chiamata GtkTextBuffer che è quella che noi utilizzeremo di più per le operazioni “pratiche”.

Ma non corriamo troppo, concentriamoci sul widget GtkTextView prima di tutto però premetto che non tratterò tutte le funzioni ma solo quelle principali e basilari, perchè è un tipo di widget che lavora insieme ad altri widget che rendono il tutto molto grande e lungo da affrontare in queste guide a puntate.

Prosegui la lettura…

Guida Gtk+ a puntate ( XV parte )

2 giugno 2009 hds619 38 commenti

Continuiamo a parlare di gtk+, data la richiesta da parte di luky oggi parleremo dell’input da parte dell’utente tramite caselle di testo ( Entry → GtkEntry ) e ho inserito anche un po’ di funzioni da conoscere sui widget di cui non avevo parlato.

Iniziamo :)

Prosegui la lettura…

Guida Gtk+ a puntate ( XIV parte )

31 maggio 2009 hds619 20 commenti

Come promesso, dopo la fine degli esami, una nuova guida alle Gtk+. In questa puntata affronteremo due argomenti differenti il primo riguardante la visualizzazione di un’immagine all’interno di un’applicazione in gtk+, il secondo come creare una barra di stato ( quella barra piccola che si vede nella maggior parte delle applicazioni, con a sinistra un messaggio e a destra il triangolino per ridimensionare la finestra.

Prosegui la lettura…

Guida Gtk+ a puntate ( XIII parte )

12 maggio 2009 hds619 1 commento

Dopo un lungo momento di silenzio a causa della scrittura della documentazione per Imel, continuiamo la nostra guida alle Gtk+. In questa puntata vedremo i label, loro uso e “consumo” :)
Prosegui la lettura…

Guida Gtk+ a puntate ( XII parte )

1 maggio 2009 hds619 3 commenti

Ok, le puntate continuano e gli argomenti avanzano. Adesso siamo arrivati all’argomento pulsanti ( o bottoni che dir si voglia ) molto utili e quasi indispensabili per un’applicazione in Gtk+.

Questo argomento non è complicatissimo e conto di finire tutti i tipi di pulsanti esistenti in questa puntata. Quindi.. Relax :)

Prosegui la lettura…