Align memory data columns text on left side
[emu8051.git] / src / emugtk.c
index 0711248..3ca0c04 100644 (file)
@@ -29,6 +29,7 @@
 
 #include "common.h"
 #include "cpu8051.h"
+#include "memory.h"
 #include "options.h"
 #include "hexfile.h"
 
@@ -59,9 +60,10 @@ void
 emugtk_UpdateDisplay(void)
 {
        log_debug("UpdateDisplay()");
-       regwin_Show();
-       pgmwin_Disasm();
-       memwin_DumpD(INT_MEM_ID);
+       regwin_refresh();
+       pgmwin_refresh();
+       memwin_refresh(INT_MEM_ID);
+       memwin_refresh(EXT_MEM_ID);
 }
 
 /* Step out of running state */
@@ -259,6 +261,14 @@ vpaned_notify_event(GtkWindow *window, GdkEvent *event, gpointer data)
        cfg->vpane_pos = gtk_paned_get_position(GTK_PANED(vpaned));
 }
 
+static void
+vpaned_mem_notify_event(GtkWindow *window, GdkEvent *event, gpointer data)
+{
+       GtkWidget *vpaned = data;
+
+       cfg->vpane_mem_pos = gtk_paned_get_position(GTK_PANED(vpaned));
+}
+
 /*
  *  mainwin
  * +---------------------------------------------------------------------+
@@ -295,9 +305,21 @@ vpaned_notify_event(GtkWindow *window, GdkEvent *event, gpointer data)
  * |  |  |                                                         |  |  |
  * |  |  |--------------------------***-----------------------------  |  |
  * |  |  |                                                         |  |  |
- * |  |  |  scrollwin                                              |  |  |
+ * |  |  |  vpaned_mem                                             |  |  |
  * |  |  |  +---------------------------------------------------+  |  |  |
- * |  |  |  | Memory window                                     |  |  |  |
+ * |  |  |  |                                                   |  |  |  |
+ * |  |  |  |  scrollwin                                        |  |  |  |
+ * |  |  |  |  +---------------------------------------------+  |  |  |  |
+ * |  |  |  |  | Internal memory window                      |  |  |  |  |
+ * |  |  |  |  +---------------------------------------------+  |  |  |  |
+ * |  |  |  |                                                   |  |  |  |
+ * |  |  |  +-----------------------***-------------------------|  |  |  |
+ * |  |  |  |                                                   |  |  |  |
+ * |  |  |  |  scrollwin                                        |  |  |  |
+ * |  |  |  |  +---------------------------------------------+  |  |  |  |
+ * |  |  |  |  | External memory window                      |  |  |  |  |
+ * |  |  |  |  +---------------------------------------------+  |  |  |  |
+ * |  |  |  |                                                   |  |  |  |
  * |  |  |  +---------------------------------------------------+  |  |  |
  * |  |  |                                                         |  |  |
  * |  |  +---------------------------------------------------------+  |  |
@@ -317,6 +339,7 @@ emugtk_window_init(void)
        GtkWidget *scrollwin;
        GtkWidget *hpaned;
        GtkWidget *vpaned;
+       GtkWidget *vpaned_mem;
 
        mainwin = gtk_window_new(GTK_WINDOW_TOPLEVEL);
        gtk_window_set_title(GTK_WINDOW(mainwin), PACKAGE);
@@ -350,7 +373,7 @@ emugtk_window_init(void)
        /*
         * vpaned will contain:
         *   Top:    registers and disassembly windows.
-        *   Bottom: memory window
+        *   Bottom: memory windows
         */
        vpaned = gtk_vpaned_new();
        gtk_paned_set_position(GTK_PANED(vpaned), cfg->vpane_pos);
@@ -373,9 +396,20 @@ emugtk_window_init(void)
 
        gtk_paned_pack1(GTK_PANED(vpaned), hpaned, FALSE, FALSE);
 
-       /* Memory dump frame. */
-       scrollwin = memwin_init();
-       gtk_paned_pack2(GTK_PANED(vpaned), scrollwin, TRUE, FALSE);
+       vpaned_mem = gtk_vpaned_new();
+       gtk_paned_set_position(GTK_PANED(vpaned_mem), cfg->vpane_mem_pos);
+       g_signal_connect(G_OBJECT(vpaned_mem), "notify::position",
+                        G_CALLBACK(vpaned_mem_notify_event), vpaned_mem);
+
+       /* Internal memory dump frame. */
+       scrollwin = memwin_init("Internal memory (IRAM)", INT_MEM_ID);
+       gtk_paned_pack1(GTK_PANED(vpaned_mem), scrollwin, FALSE, FALSE);
+
+       /* External memory dump frame. */
+       scrollwin = memwin_init("External memory (XRAM)", EXT_MEM_ID);
+       gtk_paned_pack2(GTK_PANED(vpaned_mem), scrollwin, TRUE, FALSE);
+
+       gtk_paned_pack2(GTK_PANED(vpaned), vpaned_mem, TRUE, FALSE);
 
        /* Adding vpaned window to vbox */
        gtk_box_pack_start(GTK_BOX(vbox), vpaned, true, true, 1);