X-Git-Url: http://gitweb.hugovil.com/?a=blobdiff_plain;f=src%2Fgtk%2Ftimerwin.c;h=985ffd4218fb02e7dee0e21f6abc51122f05597b;hb=f7e3f1d8d0438f52e4f988a12318075cc1b43568;hp=bbf1a7c46e1cdfe3af6be2c3346a75509851ec1e;hpb=1466890269b04da08adf7b3640698e75e9593f56;p=emu8051.git diff --git a/src/gtk/timerwin.c b/src/gtk/timerwin.c index bbf1a7c..985ffd4 100644 --- a/src/gtk/timerwin.c +++ b/src/gtk/timerwin.c @@ -4,19 +4,7 @@ * Copyright (C) 1999 Jonathan St-André * Copyright (C) 1999 Hugo Villeneuve * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. + * This file is released under the GPLv2 */ #if HAVE_CONFIG_H @@ -31,7 +19,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) @@ -39,9 +27,10 @@ button_add_stock(GtkWidget *box, gchar *stock_id, int display_label) GtkWidget *button; /* Create the button. */ - if (display_label != false) + if (display_label) { + /* By default, a label is appended to stock buttons. */ button = gtk_button_new_from_stock(stock_id); - else { + } else { GtkWidget *icon; button = gtk_button_new(); @@ -59,36 +48,45 @@ 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 +99,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);