Frames e Paned Window

 

Frames.

Le Frames (cornici) possono essere usate per racchiudere un gruppo di widget in una cornice con o senza etichetta.

Una Frame può essere creata con la funzione:

GtkWidget *gtk_frame_new( const gchar *label );

L'etichetta è posta di default nell'angolo superiore sinistro. Se si assegna NULL all'argomento label questa non sarà visualizzata.
Il testo della label può essere cambiato con la seguente funzione:

void gtk_frame_set_label( GtkFrame *frame,
const gchar *label );

La posizione della label può invece essere cambiata con:

void gtk_frame_set_label_align( GtkFrame *frame,
gfloat xalign,
gfloat yalign );

La seguente funzione altera l'aspetto della frame.

void gtk_frame_set_shadow_type( GtkFrame *frame,
GtkShadowType type);

L'argomento type puoò assumere una delle seguenti forme:

GTK_SHADOW_NONE
GTK_SHADOW_IN
GTK_SHADOW_OUT
GTK_SHADOW_ETCHED_IN (default)
GTK_SHADOW_ETCHED_OUT

Ecco l'esempio che illustra il funzionamento della Frame widget:

/* Inizio esempio frame frame.c */

#include <gtk/gtk.h>

int main( int argc,
char *argv[] )
{
GtkWidget *window;
GtkWidget *frame;
GtkWidget *button;
gint i;

/* Inizializza GTK */
gtk_init(&argc, &argv);

/* Crea una nuova window */
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_title(GTK_WINDOW(window), "Frame Example");

/* Connettiamo l'evento destroy */
gtk_signal_connect (GTK_OBJECT (window), "destroy",
GTK_SIGNAL_FUNC (gtk_main_quit), NULL);

gtk_widget_set_usize(window, 300, 300);
/* Settiamo la grandezza del bordo della window. */
gtk_container_set_border_width (GTK_CONTAINER (window), 10);

/* Crea una Frame */
frame = gtk_frame_new(NULL);
gtk_container_add(GTK_CONTAINER(window), frame);

/* Setta l'etichetta della frame */
gtk_frame_set_label( GTK_FRAME(frame), "GTK Frame Widget" );

/* Allinea l'etichetta a destra della frame */
gtk_frame_set_label_align( GTK_FRAME(frame), 1.0, 0.0);

/* Setta l'aspetto della frame */
gtk_frame_set_shadow_type( GTK_FRAME(frame), GTK_SHADOW_ETCHED_OUT);

gtk_widget_show(frame);

/* Mostra la finestra */
gtk_widget_show (window);

/* Entra nel ciclo principale */
gtk_main ();

return(0);
}
/* fine esempio */

 

 

Paned Window

Le paned window widgets sono usate quando si vuole dividere un'area in due parti la cui grandezza può essere controllata dinamicamente dall'utente.
La divisione può essere orizzontale (HPaned) o verticale (VPaned).

Per creare una nuova paned window si può usare:

GtkWidget *gtk_hpaned_new (void);

GtkWidget *gtk_vpaned_new (void);

Dopo aver creato la paned si possono aggiungere i widget al suo interno con le funzioni:

void gtk_paned_add1 (GtkPaned *paned, GtkWidget *child);

void gtk_paned_add2 (GtkPaned *paned, GtkWidget *child);

gtk_paned_add1() aggiunge la wiget alla metà sinistra o a quella in alto della paned. gtk_paned_add2() la aggiunge alla metà sinistra o a quella in basso.

La grandezza del separatore della paned e dell handle (maniglia) può essere modificata usando:

void gtk_paned_set_handle_size( GtkPaned *paned,
guint16 size);

void gtk_paned_set_gutter_size( GtkPaned *paned,
guint16 size);

 

Torna all'indice