1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
|
#include <gtk/gtk.h>
int main( int argc, char *argv[] )
{
GtkWidget *fenetre, *pTable, *aArea, *eReglev, *eRegleh;
gtk_init (&argc, &argv);
fenetre = gtk_window_new (GTK_WINDOW_TOPLEVEL);
g_signal_connect(G_OBJECT(fenetre),"destroy",G_CALLBACK(gtk_main_quit),NULL);
#define XSIZE 600
#define YSIZE 400
#define EVENT_METHOD(i, x) GTK_WIDGET_GET_CLASS(i)->x
pTable = gtk_table_new (3, 2, FALSE);
gtk_container_add (GTK_CONTAINER (fenetre), pTable);
aArea = gtk_drawing_area_new ();
gtk_widget_set_size_request (GTK_WIDGET (aArea), XSIZE, YSIZE);
gtk_table_attach (GTK_TABLE (pTable), aArea, 1, 2, 1, 2,
GTK_EXPAND|GTK_FILL, GTK_FILL, 0, 0);
gtk_widget_set_events (aArea, GDK_POINTER_MOTION_MASK |
GDK_POINTER_MOTION_HINT_MASK);
eReglev = gtk_vruler_new();
gtk_ruler_set_metric (GTK_RULER (eReglev), GTK_PIXELS);
gtk_ruler_set_range (GTK_RULER (eReglev), 0, YSIZE, 10, YSIZE );
g_signal_connect_swapped (G_OBJECT (aArea), "motion_notify_event",
G_CALLBACK (EVENT_METHOD (eReglev, motion_notify_event)),
G_OBJECT (eReglev));
gtk_table_attach (GTK_TABLE (pTable), eReglev, 0, 1, 1, 2,
GTK_FILL, GTK_EXPAND|GTK_SHRINK|GTK_FILL, 0, 0);
eRegleh = gtk_hruler_new();
gtk_ruler_set_metric (GTK_RULER (eRegleh), GTK_PIXELS);
gtk_ruler_set_range (GTK_RULER (eRegleh), 7, 13, 0, 20);
g_signal_connect_swapped (G_OBJECT (aArea), "motion_notify_event",
G_CALLBACK (EVENT_METHOD (eRegleh, motion_notify_event)),
G_OBJECT (eRegleh));
gtk_table_attach (GTK_TABLE (pTable), eRegleh, 1, 2, 0, 1,
GTK_EXPAND|GTK_SHRINK|GTK_FILL, GTK_FILL, 0, 0);
gtk_widget_show_all(fenetre);
gtk_main ();
return 0;
} |
Partager