static void disasmwin_new(running_machine *machine) { disasmwin_i *dis; int item, cursel; const device_config *curcpu = debug_cpu_get_visible_cpu(machine); const disasm_subview_item *subview; char title[256]; dis = malloc(sizeof(*dis)); memset(dis, 0, sizeof(*dis)); dis->next = disasmwin_list; disasmwin_list = dis; dis->win = create_disasmwin(machine); dis->machine = machine; dis->disasm_w = DVIEW(lookup_widget(dis->win, "disasmview")); dview_set_debug_view(dis->disasm_w, machine, DVT_DISASSEMBLY, &dis->disasm); dis->cpu_w = GTK_COMBO_BOX(lookup_widget(dis->win, "cpu")); edit_init(machine, &dis->ed, lookup_widget(dis->win, "edit"), "curpc", 1, disasmwin_process_string, dis); debug_view_begin_update(dis->disasm); disasm_view_set_expression(dis->disasm, "curpc"); // debug_view_set_property_UINT32(dis->disasm, DVP_DASM_TRACK_LIVE, 1); debug_view_end_update(dis->disasm); // populate the combobox cursel = item = 0; for (subview = disasm_view_get_subview_list(dis->disasm); subview != NULL; subview = subview->next) { gtk_combo_box_append_text(dis->cpu_w, subview->name); if (cursel == 0 && subview->space->cpu == curcpu) cursel = item; item++; } gtk_combo_box_set_active(dis->cpu_w, cursel); disasm_view_set_subview(dis->disasm, cursel); subview = disasm_view_get_current_subview(dis->disasm); sprintf(title, "Disassembly: %s", subview->name); gtk_window_set_title(GTK_WINDOW(dis->win), title); g_signal_connect(dis->cpu_w, "changed", G_CALLBACK(disasmwin_cpu_changed), dis); g_signal_connect(lookup_widget(dis->win, "raw_opcodes"), "activate", G_CALLBACK(disasmwin_raw_opcodes_activate), dis); g_signal_connect(lookup_widget(dis->win, "enc_opcodes"), "activate", G_CALLBACK(disasmwin_enc_opcodes_activate), dis); g_signal_connect(lookup_widget(dis->win, "comments"), "activate", G_CALLBACK(disasmwin_comments_activate), dis); // g_signal_connect(dis->edit_w, "activate", G_CALLBACK(disasmwin_process_string), dis); g_signal_connect(dis->win, "destroy", G_CALLBACK(disasmwin_destroy), dis); gtk_widget_show_all(dis->win); }
static void disasmwin_new(running_machine &machine) { win_i *dis; int item; //, cursel; device_t *curcpu = debug_cpu_get_visible_cpu(machine); GtkComboBox *cpu_w; astring title; dis = add_win_i(machine, WIN_TYPE_DISASM); dis->win = create_disasmwin(); dis->views[0] = DVIEW(lookup_widget(dis->win, "disasmview")); dview_set_debug_view(dis->views[0], machine, DVT_DISASSEMBLY); cpu_w = GTK_COMBO_BOX(lookup_widget(dis->win, "cpu")); edit_init(&dis->ed, lookup_widget(dis->win, "edit"), "curpc", 1, disasmwin_process_string, dis); downcast<debug_view_disasm *>(dis->views[0]->view)->set_expression("curpc"); // populate the combobox // cursel = 0; item = 0; for (const debug_view_source *source = dis->views[0]->view->source_list().head(); source != NULL; source = source->next()) { gtk_combo_box_append_text(cpu_w, source->name()); item++; } const debug_view_source *source = dis->views[0]->view->source_list().match_device(curcpu); gtk_combo_box_set_active(cpu_w, dis->views[0]->view->source_list().index(*source)); dis->views[0]->view->set_source(*source); title.printf("Disassembly: %s", source->name()); gtk_window_set_title(GTK_WINDOW(dis->win), title); g_signal_connect(cpu_w, "changed", G_CALLBACK(disasmwin_cpu_changed), dis); // g_signal_connect(dis->edit_w, "activate", G_CALLBACK(disasmwin_process_string), dis); g_signal_connect(dis->win, "destroy", G_CALLBACK(disasmwin_destroy), dis); gtk_widget_show_all(dis->win); }