DIALOG BOX E PIXMAPS

 

Dialog.

La dialog widget è molto semplice. Può essere usata per far comparire messaggi di avvertimento o di errore.
Per creare una dialog useremo:

GtkWidget *window;
window = gtk_dialog_new ();

Per inserire un bottone nella dialog useremo:

button = ...
gtk_box_pack_start (GTK_BOX (GTK_DIALOG (window)->action_area),
button, TRUE, TRUE, 0);
gtk_widget_show (button);

Per inserire una label con un messaggio:

label = gtk_label_new ("Dialogs are groovy");
gtk_box_pack_start (GTK_BOX (GTK_DIALOG (window)->vbox),
label, TRUE, TRUE, 0);
gtk_widget_show (label);

 

 

Pixmaps

Le pixmaps sono struture di dati contenenti immagini.

Per usare le pixmaps in GTK non dobbiamo prima creare una struttura GdkPixmap.
Le pixmaps possono essere create con i dati in memoria o con i dati letti da un file.
Avremo quindi le funzioni:

GdkPixmap *gdk_bitmap_create_from_data( GdkWindow *window,
gchar *data,
gint width,
gint height );

Crea una pixmaps di due colori (bitmap) dai dati in memoria.

GdkPixmap *gdk_pixmap_create_from_data( GdkWindow *window,
gchar *data,
gint width,
gint height,
gint depth,
GdkColor *fg,
GdkColor *bg );

Crea una pixmaps di n. colori (depth) dai dati in memoria.

GdkPixmap *gdk_pixmap_create_from_xpm( GdkWindow *window,
GdkBitmap **mask,
GdkColor *transparent_color,
const gchar *filename );

Crea una pixmaps da un file *.xpm

Una volta creata la pixmap noi possiamo visualizzarla come una GTK widget.
Creiamo quindi una GTK pixmap widget per contenerla usando la specifica funzione:

GtkWidget *gtk_pixmap_new( GdkPixmap *pixmap,
GdkBitmap *mask );

Abbiamo inoltre le seguenti ulteriori funzioni per i pixmap widget:

guint gtk_pixmap_get_type( void );

void gtk_pixmap_set( GtkPixmap *pixmap,
GdkPixmap *val,
GdkBitmap *mask );

void gtk_pixmap_get( GtkPixmap *pixmap,
GdkPixmap **val,
GdkBitmap **mask);

gtk_pixmap_set è usata per cambiare la pixmap contenuta nel widget. Val è la pixmap creata.

Ad esempio se vogliamo caricare il file chiamato icon0.xpm potremo usare il seguente codice di esempio.
/* carica una pixmap da un file */
pixmap = gdk_pixmap_create_from_xpm( window->window, &mask,
&style->bg[GTK_STATE_NORMAL],
"./icon0.xpm" );
pixmapwid = gtk_pixmap_new( pixmap, mask );
gtk_widget_show( pixmapwid );
gtk_container_add( GTK_CONTAINER(window), pixmapwid );

 

Torna all'indice