X-Git-Url: http://gitweb.hugovil.com/?a=blobdiff_plain;f=src%2Fgtk%2Ftimerwin.c;fp=src%2Fgtk%2Ftimerwin.c;h=045ca1f1fe0e6c49c8fd871ae74e273e10078fea;hb=75172f0ea557b3d104787c34437a99b1453c56de;hp=bbf1a7c46e1cdfe3af6be2c3346a75509851ec1e;hpb=93c2708beede1eae6700f622279560ac2620290e;p=emu8051.git diff --git a/src/gtk/timerwin.c b/src/gtk/timerwin.c index bbf1a7c..045ca1f 100644 --- a/src/gtk/timerwin.c +++ b/src/gtk/timerwin.c @@ -31,7 +31,7 @@ #include "timers.h" #include "main.h" -static GtkWidget *label; +static GtkWidget *label[GP_TIMERS_COUNT]; static GtkWidget * button_add_stock(GtkWidget *box, gchar *stock_id, int display_label) @@ -59,36 +59,44 @@ button_add_stock(GtkWidget *box, gchar *stock_id, int display_label) void timerwin_update(void) { + int id; char buf[128]; - /* Display textin bold, with big font size. */ - sprintf(buf , "%08d cycles", gp_timer_read()); + for (id = 0; id < GP_TIMERS_COUNT; id++) { + /* Display textin bold, with big font size. */ + sprintf(buf , "%08d cycles", gp_timer_read(id)); - gtk_label_set_markup(GTK_LABEL(label), buf); + gtk_label_set_markup(GTK_LABEL(label[id]), buf); + } } static void timer_reset_callback(GtkWidget *widget, gpointer data) { + int id = GPOINTER_TO_INT(data); + /* Remove compiler warning about unused variables. */ (void) widget; - (void) data; - gp_timer_reset(); + log_info("timer_reset_callback ID = %d", id); + + gp_timer_reset(id); timerwin_update(); } GtkWidget * -timerwin_init(void) +timerwin_init(int id) { GtkWidget *frame; GtkWidget *hbox; GtkWidget *vbox; GtkWidget *timer_reset_button; + char title[100]; log_debug("timer window init"); - frame = gtk_frame_new("General-purpose Timer"); + sprintf(title, "Emulator timer %c", 'A' + id); + frame = gtk_frame_new(title); /* The items of the hbox are NOT given equal space in the box. */ hbox = gtk_hbox_new(false, 0); @@ -101,12 +109,12 @@ timerwin_init(void) vbox = gtk_vbox_new(true, 0); timer_reset_button = button_add_stock(vbox, GTK_STOCK_REFRESH, false); g_signal_connect(G_OBJECT(timer_reset_button), "clicked", - G_CALLBACK(timer_reset_callback), NULL); + G_CALLBACK(timer_reset_callback), GINT_TO_POINTER(id)); gtk_box_pack_start(GTK_BOX(hbox), vbox, false, false, 3); - label = gtk_label_new(NULL); - gtk_label_set_markup(GTK_LABEL(label), "Small text"); - gtk_box_pack_start(GTK_BOX(hbox), label, false, false, 10); + label[id] = gtk_label_new(NULL); + gtk_label_set_markup(GTK_LABEL(label[id]), "Small text"); + gtk_box_pack_start(GTK_BOX(hbox), label[id], false, false, 10); gtk_container_add(GTK_CONTAINER(frame), hbox);