Frames can be used to enclose one or a group of widgets with a box
which can optionally be labelled. The position of the label and the
style of the box can be altered to suit.
A Frame can be created with the following function:
GtkWidget *gtk_frame_new( const gchar *label ); |
The label is by default placed in the upper left hand corner of the
frame. A value of NULL for the label argument will result in no
label being displayed. The text of the label can be changed using the
next function.
void gtk_frame_set_label( GtkFrame *frame,
const gchar *label ); |
The position of the label can be changed using this function:
void gtk_frame_set_label_align( GtkFrame *frame,
gfloat xalign,
gfloat yalign ); |
xalign and yalign take values between 0.0 and 1.0. xalign
indicates the position of the label along the top horizontal of the
frame. yalign is not currently used. The default value of xalign
is 0.0 which places the label at the left hand end of the frame.
The next function alters the style of the box that is used to outline
the frame.
void gtk_frame_set_shadow_type( GtkFrame *frame,
GtkShadowType type); |
The type argument can take one of the following values:
GTK_SHADOW_NONE
GTK_SHADOW_IN
GTK_SHADOW_OUT
GTK_SHADOW_ETCHED_IN (the default)
GTK_SHADOW_ETCHED_OUT |
The following code example illustrates the use of the Frame widget.
/* example-start frame frame.c */
#include <gtk/gtk.h>
int main( int argc,
char *argv[] )
{
/* GtkWidget is the storage type for widgets */
GtkWidget *window;
GtkWidget *frame;
GtkWidget *button;
gint i;
/* Initialise GTK */
gtk_init(&argc, &argv);
/* Create a new window */
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_title(GTK_WINDOW(window), "Frame Example");
/* Here we connect the "destroy" event to a signal handler */
gtk_signal_connect (GTK_OBJECT (window), "destroy",
GTK_SIGNAL_FUNC (gtk_main_quit), NULL);
gtk_widget_set_usize(window, 300, 300);
/* Sets the border width of the window. */
gtk_container_set_border_width (GTK_CONTAINER (window), 10);
/* Create a Frame */
frame = gtk_frame_new(NULL);
gtk_container_add(GTK_CONTAINER(window), frame);
/* Set the frame's label */
gtk_frame_set_label( GTK_FRAME(frame), "GTK Frame Widget" );
/* Align the label at the right of the frame */
gtk_frame_set_label_align( GTK_FRAME(frame), 1.0, 0.0);
/* Set the style of the frame */
gtk_frame_set_shadow_type( GTK_FRAME(frame), GTK_SHADOW_ETCHED_OUT);
gtk_widget_show(frame);
/* Display the window */
gtk_widget_show (window);
/* Enter the event loop */
gtk_main ();
return(0);
}
/* example-end */ |