X-Git-Url: http://gitweb.hugovil.com/?a=blobdiff_plain;ds=inline;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);