Add option no-define to AM_INIT_AUTOMAKE
[emu8051.git] / src / gtk / viewmenu.c
index 3377329..e7b068f 100644 (file)
@@ -4,19 +4,7 @@
  * 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
@@ -26,7 +14,7 @@
 #include <gtk/gtk.h>
 
 #include "common.h"
-#include "emugtk.h" /* For AddMenuSeparator() function. */
+#include "main.h" /* For AddMenuSeparator() function. */
 #include "messagebox.h"
 #include "viewmenu.h"
 #include "app-config.h"
@@ -37,62 +25,58 @@ void toggle_layout(GtkWidget *widget, gpointer data)
 {
        int id;
 
-        id = GPOINTER_TO_UINT(data);
+       id = GPOINTER_TO_UINT(data);
 
        if (gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(widget))) {
                log_info("  Switching to layout %d", id);
                cfg->layout = id;
-               emugtk_restart_gui();
+
+               message_show_information(
+                       "You must restart for the changes to take effect");
        }
 }
 
-void toggle_bits_per_row(GtkWidget *widget, gpointer data)
+void toggle_bytes_per_row(GtkWidget *widget, gpointer data)
 {
-       int bits_per_row;
+       int bytes_per_row;
 
-        bits_per_row = GPOINTER_TO_UINT(data);
+       bytes_per_row = GPOINTER_TO_UINT(data);
 
        if (gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(widget))) {
-               log_info("  Bits per row = %d", bits_per_row);
-               cfg->bits_per_row = bits_per_row;
-               emugtk_restart_gui();
+               log_info("  Bytes per row = %d", bytes_per_row);
+               cfg->bytes_per_row = bytes_per_row;
+               emugtk_destroy_int_memory_paned();
+               emugtk_destroy_ext_memory_paned();
+               emugtk_recreate_memory_paned();
        }
 }
 
 void toggle_int_memory(GtkWidget *widget, gpointer data)
 {
+       (void) data; /* Remove compiler warning about unused variables. */
+
        if (gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(widget))) {
                log_info("  View internal memory");
                cfg->view_int_memory = 1;
+               emugtk_create_int_memory_paned();
        } else {
                cfg->view_int_memory = 0;
+               emugtk_destroy_int_memory_paned();
        }
-
-       emugtk_restart_gui();
-}
-
-void toggle_sfr_memory(GtkWidget *widget, gpointer data)
-{
-       if (gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(widget))) {
-               log_info("  View SFR memory");
-               cfg->view_sfr_memory = 1;
-       } else {
-               cfg->view_sfr_memory = 0;
-       }
-
-       emugtk_restart_gui();
 }
 
 void toggle_ext_memory(GtkWidget *widget, gpointer data)
 {
+       (void) data; /* Remove compiler warning about unused variables. */
+
        if (gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(widget))) {
                log_info("  View external memory");
                cfg->view_ext_memory = 1;
+               emugtk_create_ext_memory_paned();
        } else {
                cfg->view_ext_memory = 0;
+               emugtk_destroy_ext_memory_paned();
        }
-
-       emugtk_restart_gui();
 }
 
 void
@@ -113,9 +97,11 @@ view_add_layout_submenu(GtkWidget *parent)
        layout2 = gtk_radio_menu_item_new_with_label(group, "Layout2");
 
        if (cfg->layout == UI_LAYOUT1)
-               gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(layout1), TRUE);
+               gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(layout1),
+                                              TRUE);
        else
-               gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(layout2), TRUE);
+               gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(layout2),
+                                              TRUE);
 
        g_signal_connect(G_OBJECT(layout1), "activate",
                         G_CALLBACK(toggle_layout), (gpointer) UI_LAYOUT1);
@@ -129,7 +115,7 @@ view_add_layout_submenu(GtkWidget *parent)
 }
 
 void
-view_add_bits_per_row_submenu(GtkWidget *parent)
+view_add_bytes_per_row_submenu(GtkWidget *parent)
 {
        GtkWidget *submenu;
        GtkWidget *item;
@@ -139,21 +125,23 @@ view_add_bits_per_row_submenu(GtkWidget *parent)
 
        submenu = gtk_menu_new();
 
-       item  = gtk_menu_item_new_with_label("Bits per row");
+       item  = gtk_menu_item_new_with_label("Bytes per row");
 
        item1 = gtk_radio_menu_item_new_with_label(group, "8");
        group = gtk_radio_menu_item_get_group(GTK_RADIO_MENU_ITEM(item1));
        item2 = gtk_radio_menu_item_new_with_label(group, "16");
 
-       if (cfg->bits_per_row == 8)
-               gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(item1), TRUE);
+       if (cfg->bytes_per_row == 8)
+               gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(item1),
+                                              TRUE);
        else
-               gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(item2), TRUE);
+               gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(item2),
+                                              TRUE);
 
        g_signal_connect(G_OBJECT(item1), "activate",
-                        G_CALLBACK(toggle_bits_per_row), (gpointer) 8);
+                        G_CALLBACK(toggle_bytes_per_row), (gpointer) 8);
        g_signal_connect(G_OBJECT(item2), "activate",
-                        G_CALLBACK(toggle_bits_per_row), (gpointer) 16);
+                        G_CALLBACK(toggle_bytes_per_row), (gpointer) 16);
 
        gtk_menu_item_set_submenu(GTK_MENU_ITEM(item), submenu);
        gtk_menu_shell_append(GTK_MENU_SHELL(submenu), item1);
@@ -162,7 +150,7 @@ view_add_bits_per_row_submenu(GtkWidget *parent)
 }
 
 void
-ViewAddMenu(GtkWidget *menu_bar)
+view_add_menu(GtkWidget *menu_bar)
 {
        GtkWidget *item;
        GtkWidget *menu;
@@ -179,13 +167,6 @@ ViewAddMenu(GtkWidget *menu_bar)
        g_signal_connect(G_OBJECT(item), "activate",
                         G_CALLBACK(toggle_int_memory), NULL);
 
-       item = gtk_check_menu_item_new_with_label("SFR Memory");
-       gtk_menu_shell_append(GTK_MENU_SHELL(menu), item);
-       gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(item),
-                                      cfg->view_sfr_memory);
-       g_signal_connect(G_OBJECT(item), "activate",
-                        G_CALLBACK(toggle_sfr_memory), NULL);
-
        item = gtk_check_menu_item_new_with_label("External Memory");
        gtk_menu_shell_append(GTK_MENU_SHELL(menu), item);
        gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(item),
@@ -193,15 +174,15 @@ ViewAddMenu(GtkWidget *menu_bar)
        g_signal_connect(G_OBJECT(item), "activate",
                         G_CALLBACK(toggle_ext_memory), NULL);
 
-       AddMenuSeparator(menu);
+       add_menu_separator(menu);
 
        /* Add layout submenu */
        view_add_layout_submenu(menu);
 
-       AddMenuSeparator(menu);
+       add_menu_separator(menu);
 
-       /* Add bits per row submenu */
-       view_add_bits_per_row_submenu(menu);
+       /* Add bytes per row submenu */
+       view_add_bytes_per_row_submenu(menu);
 
        gtk_menu_item_set_submenu(GTK_MENU_ITEM(view), menu);
        gtk_menu_shell_append(GTK_MENU_SHELL(menu_bar), view);