arrow
Arrow widget is basically a miscellanious widget, that can be used
to create alignment, and provide visual cue to the user. Arrow
widgets, have properties like alignment, and padding inherited
from Misc widget.
Also you may set the arrow shadow types to any one of the values
from the enum, GtkShadowType, and enum GtkArrowType
/* Arrow types */
typedef enum
{
GTK_ARROW_UP,
GTK_ARROW_DOWN,
GTK_ARROW_LEFT,
GTK_ARROW_RIGHT
} GtkArrowType;
/* Shadow types */
typedef enum
{
GTK_SHADOW_NONE,
GTK_SHADOW_IN,
GTK_SHADOW_OUT,
GTK_SHADOW_ETCHED_IN,
GTK_SHADOW_ETCHED_OUT
} GtkShadowType;
Create a small widgets , and you can also embed
arrow widgets into your buttons, labels etc to indicate
next, previous, up, down preferences in your GUI.
By providing stock buttons, and similar feel
to a user, GTK+ applications & GNOME have
a uniform look-and-feel.
API
Create a new arrow button using , choosing arrow type,
and shadown types like this:
GtkWidget* gtk_arrow_new (GtkArrowType arrow_type,
GtkShadowType shadow_type);
Thats all you need to do.
Next embed this arrow widget into a button using
gtk_container_add(GTK_CONTAINER(button),arrow);
Later you may modify the settings using
void gtk_arrow_set (GtkArrow *arrow,
GtkArrowType arrow_type,
GtkShadowType shadow_type);
Also API of Misc widget can be used on this arrow button.
Example
{
#include
GtkWidget *
arrow_box(void)
{
GtkWidget *box,*arrow,*vbox;
vbox=gtk_vbox_new(FALSE,FALSE);
/* GTK_ARROW_UP GTK_SHADOW_NONE */
arrow=gtk_arrow_new(GTK_ARROW_UP ,GTK_SHADOW_NONE );
box=gtk_hbox_new(FALSE,FALSE);
gtk_box_pack_start(GTK_BOX(box),
gtk_label_new("GTK_ARROW_UP-GTK_SHADOW_NONE"),FALSE,FALSE,0);
gtk_box_pack_start(GTK_BOX(box),arrow,FALSE,FALSE,0);
gtk_box_pack_start(GTK_BOX(vbox),box,FALSE,FALSE,0);
return vbox;
}
/* A simple python script to generate all combinations of this arrow/shadow */
#! /usr/bin/python
x=['GTK_ARROW_UP','GTK_ARROW_DOWN','GTK_ARROW_LEFT','GTK_ARROW_RIGHT'];
y=['GTK_SHADOW_NONE', 'GTK_SHADOW_IN',
'GTK_SHADOW_OUT','GTK_SHADOW_ETCHED_IN', 'GTK_SHADOW_ETCHED_OUT'];
for i in x:
for j in y:
print "/* "+i+" \t "+j+" */"
print "arrow=gtk_arrow_new("+i+" ,"+j+" );"
print "box=gtk_hbox_new(FALSE,FALSE);"
print "gtk_box_pack_start(GTK_BOX(box),\n\t\tgtk_label_new(\""+i+"-"+j+"\"),FALSE,FALSE,0);"
print "gtk_box_pack_start(GTK_BOX(box),arrow,FALSE,FALSE,0);"
print "gtk_box_pack_start(GTK_BOX(vbox),box,FALSE,FALSE,0);"
print ""
}
see also: misc,
Last Modified on Fri Jul 1 19:51:40 IST 2005
This is part of the GtkBook project Hosted Here
This code, documents and images are © Muthiah Annamalai
This document is under Creative Commons License given by
LICENSE