* Copyright (C) 1999 Jonathan St-André
* Copyright (C) 1999 Hugo Villeneuve <hugo@hugovil.com>
*
- * 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
#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)
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();
void
timerwin_update(void)
{
+ int id;
char buf[128];
- /* Display textin bold, with big font size. */
- sprintf(buf , "<b><big>%08d</big></b> cycles", gp_timer_read());
+ for (id = 0; id < GP_TIMERS_COUNT; id++) {
+ /* Display textin bold, with big font size. */
+ sprintf(buf , "<b><big>%08d</big></b> 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);
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>Small text</small>");
- 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>Small text</small>");
+ gtk_box_pack_start(GTK_BOX(hbox), label[id], false, false, 10);
gtk_container_add(GTK_CONTAINER(frame), hbox);