X-Git-Url: http://gitweb.hugovil.com/?a=blobdiff_plain;f=src%2Femugtk.c;h=656a07e249763b4e7ba6c3880aa68f39bbb54255;hb=7b400e8dd6a3f1a50247b74283c76e34f9e20ba1;hp=224bc938a9f974d7658b2379c23bdb4dc6f613c1;hpb=696410ca8d43542b2a1cd19e00498e9532495623;p=emu8051.git diff --git a/src/emugtk.c b/src/emugtk.c index 224bc93..656a07e 100644 --- a/src/emugtk.c +++ b/src/emugtk.c @@ -49,20 +49,11 @@ static int running; static int running_function_tag; -static GtkWidget *mainwin; -extern struct app_config_t *cfg; +GtkWidget *mainwin; -/* Signal DestroyEvent */ -static void -WindowDestroyEvent(GtkWidget *widget, gpointer data) -{ -#ifdef EMU8051_DEBUG - g_print("emugtk_DestroyEvent(...)\n"); -#endif - - gtk_main_quit(); -} +extern struct app_config_t *cfg; +extern struct options_t options; /* Step out of running state */ static void @@ -245,18 +236,21 @@ AddMenu(void) /* Adding the 'Help' submenu */ HelpAddMenu(menu_bar); - gtk_widget_show_all(GTK_WIDGET(menu_bar)); - return menu_bar; } -static void +static int mainwin_configure_event(GtkWindow *window, GdkEvent *event, gpointer data) { - //event->configure.x; - //event->configure.y; cfg->win_width = event->configure.width; cfg->win_height = event->configure.height; + + /* + * Important: + * Returning false allows event to propagate to children. If not, they + * will not be resized when we resize the main window. + */ + return FALSE; } static void @@ -342,7 +336,7 @@ emugtk_window_init(void) /* Window DESTROY event. */ g_signal_connect(mainwin, "destroy", - G_CALLBACK(WindowDestroyEvent), NULL); + G_CALLBACK(gtk_main_quit), NULL); g_signal_connect(G_OBJECT(mainwin), "configure-event", G_CALLBACK(mainwin_configure_event), NULL); @@ -437,10 +431,7 @@ emugtk_new_file(char *file) int main(int argc, char **argv) { - char *hex_file; - - ParseCommandLineOptions(argc, argv); - + parse_command_line_options(argc, argv); app_config_load(); cpu8051_init(); @@ -451,10 +442,10 @@ main(int argc, char **argv) emugtk_window_init(); - hex_file = get_hex_filename(); - - if (hex_file != NULL) - emugtk_new_file(hex_file); + if (options.filename != NULL) + emugtk_new_file(options.filename); + else + emugtk_Reset(); gtk_main();