X-Git-Url: http://gitweb.hugovil.com/?a=blobdiff_plain;f=src%2Femugtk.c;h=b5ef13fbb353a800d6a0506af2189a36eb1549a1;hb=8b2f6f3ebba84564f11f0087f257c94133c107fa;hp=9ade2cd520a187e1663db3f39337dacdf741ac7e;hpb=4c86604f944240034b02db1bd37b9092455d5d9f;p=emu8051.git diff --git a/src/emugtk.c b/src/emugtk.c index 9ade2cd..b5ef13f 100644 --- a/src/emugtk.c +++ b/src/emugtk.c @@ -44,6 +44,7 @@ #include "regwin.h" #include "pgmwin.h" #include "memwin.h" +#include "pswwin.h" #include "app-config.h" #define BUTTONS_BORDER 2 @@ -63,6 +64,7 @@ emugtk_UpdateDisplay(void) log_debug("UpdateDisplay()"); regwin_refresh(); pgmwin_refresh(); + pswwin_refresh(); if (cfg->view_int_memory) memwin_refresh(INT_MEM_ID); @@ -292,6 +294,40 @@ emugtk_quit_gui(void) restart_gui = false; } +static GtkWidget * +emugtk_create_memory_paned(void) +{ + GtkWidget *vpaned; + GtkWidget *scrollwin; + + /* Create vpaned (memory windows) only if necessary. */ + if (cfg->view_int_memory || cfg->view_ext_memory) { + vpaned = gtk_vpaned_new(); + gtk_paned_set_position(GTK_PANED(vpaned), cfg->vpane_pos); + g_signal_connect(G_OBJECT(vpaned), "notify::position", + G_CALLBACK(vpaned_notify_event), vpaned); + + /* Internal memory dump frame. */ + if (cfg->view_int_memory) { + scrollwin = memwin_init("Internal memory (IRAM)", + INT_MEM_ID); + gtk_paned_pack1(GTK_PANED(vpaned), scrollwin, + FALSE, FALSE); + } + + /* External memory dump frame. */ + if (cfg->view_ext_memory) { + scrollwin = memwin_init("External memory (XRAM)", + EXT_MEM_ID); + gtk_paned_pack2(GTK_PANED(vpaned), scrollwin, + TRUE, FALSE); + } + + return vpaned; + } else + return NULL; +} + /* * mainwin * +---------------------------------------------------------------------+ @@ -383,6 +419,9 @@ emugtk_window_init(void) /* Creating the buttons bar. */ buttons_bar = AddButtons(); + scrollwin = pswwin_init(); + gtk_box_pack_start(GTK_BOX(buttons_bar), scrollwin, FALSE, FALSE, 100); + /* hpaned will contain registers and disassembly windows. */ hpaned = gtk_hpaned_new(); gtk_paned_set_position(GTK_PANED(hpaned), cfg->hpane_pos); @@ -412,31 +451,10 @@ emugtk_window_init(void) G_CALLBACK(main_paned_notify_event), main_paned); gtk_paned_pack1(GTK_PANED(main_paned), hpaned, FALSE, FALSE); - /* Create vpaned (memory windows) only if necessary. */ - if (cfg->view_int_memory || cfg->view_ext_memory) { - vpaned = gtk_vpaned_new(); - gtk_paned_set_position(GTK_PANED(vpaned), cfg->vpane_pos); - g_signal_connect(G_OBJECT(vpaned), "notify::position", - G_CALLBACK(vpaned_notify_event), vpaned); - - /* Internal memory dump frame. */ - if (cfg->view_int_memory) { - scrollwin = memwin_init("Internal memory (IRAM)", - INT_MEM_ID); - gtk_paned_pack1(GTK_PANED(vpaned), scrollwin, - FALSE, FALSE); - } - - /* External memory dump frame. */ - if (cfg->view_ext_memory) { - scrollwin = memwin_init("External memory (XRAM)", - EXT_MEM_ID); - gtk_paned_pack2(GTK_PANED(vpaned), scrollwin, - TRUE, FALSE); - } - - gtk_paned_pack2(GTK_PANED(main_paned), vpaned, TRUE, FALSE); - } + vpaned = emugtk_create_memory_paned(); + if (vpaned != NULL) + gtk_paned_pack2(GTK_PANED(main_paned), vpaned, + TRUE, FALSE); /* * vbox contains the menu bar and body_vbox (for all remaining @@ -471,7 +489,9 @@ emugtk_new_file(char *file) LoadHexFile(file); - emugtk_Reset(); /* Use app-config->clear_ram_on_file_load */ + if (cfg->clear_ram_on_file_load) + emugtk_Reset(); + emugtk_UpdateDisplay(); } @@ -489,8 +509,8 @@ main(int argc, char **argv) if (options.filename != NULL) LoadHexFile(options.filename); - else - cpu8051_Reset(); + + cpu8051_Reset(); while (restart_gui == true) { log_info("Init GUI");