// refresh content of all windows void gtk_debugger_refresh(void) { if(GTK_WIDGET_VISIBLE(dbgw.regs)) dbgregs_refresh_window(); if(GTK_WIDGET_VISIBLE(dbgw.mem)) dbgmem_refresh_window(); if(GTK_WIDGET_VISIBLE(dbgw.bkpts)) dbgbkpts_refresh_window(); if(GTK_WIDGET_VISIBLE(dbgw.pclog)) dbgpclog_refresh_window(); if(GTK_WIDGET_VISIBLE(dbgw.code)) dbgcode_refresh_window(); if(GTK_WIDGET_VISIBLE(dbgw.stack)) dbgstack_refresh_window(); if(GTK_WIDGET_VISIBLE(dbgw.heap)) dbgheap_refresh_window(); if(GTK_WIDGET_VISIBLE(dbgw.iop)) dbgiop_refresh_window(); }
void gtk_debugger_refresh(void) { WND_TMR_START(); if(options3.dbg_dock || GTK_WIDGET_VISIBLE(dbgw.regs)) dbgregs_refresh_window(); if(options3.dbg_dock || GTK_WIDGET_VISIBLE(dbgw.mem)) dbgmem_refresh_window(); if(options3.dbg_dock || GTK_WIDGET_VISIBLE(dbgw.bkpts)) dbgbkpts_refresh_window(); if(options3.dbg_dock || GTK_WIDGET_VISIBLE(dbgw.pclog)) dbgpclog_refresh_window(); if(options3.dbg_dock || GTK_WIDGET_VISIBLE(dbgw.code)) dbgcode_refresh_window(); if(options3.dbg_dock || GTK_WIDGET_VISIBLE(dbgw.stack)) dbgstack_refresh_window(); if(options3.dbg_dock || GTK_WIDGET_VISIBLE(dbgw.heap)) dbgheap_refresh_window(); if(options3.dbg_dock || GTK_WIDGET_VISIBLE(dbgw.iop)) dbgiop_refresh_window(); WND_TMR_STOP("Debugger Refresh Time"); printf("\n"); }
static void renderer_edited(GtkCellRendererText * cell, const gchar * path_string, const gchar * new_text, gpointer user_data) { GtkWidget *tree = user_data; GtkTreeView *view = GTK_TREE_VIEW(tree); GtkTreeModel *model = gtk_tree_view_get_model(view); GtkTreeStore *store = GTK_TREE_STORE(model); GtkTreePath *path = gtk_tree_path_new_from_string(path_string); GtkTreeIter iter; uint32_t value; gint n; if (!gtk_tree_model_get_iter(model, &iter, path)) return; if (strlen(path_string) < 3) return; // set new value n = path_string[2] - '0'; switch(path_string[0] - '0') { case 1: // Ax if(validate_value(new_text, 8)) { sscanf(new_text, "%x", &value); gtk_tree_store_set(store, &iter, COL_VALUE, new_text, -1); ti68k_register_set_addr(n, value); if((n == 6) || (n == 7)) dbgstack_refresh_window(); } break; case 0: // Dx if(validate_value(new_text, 8)) { sscanf(new_text, "%x", &value); gtk_tree_store_set(store, &iter, COL_VALUE, new_text, -1); ti68k_register_set_data(n, value); } break; case 2: // Others switch(n) { case 0: // pc if(validate_value(new_text, 6)) { sscanf(new_text, "%x", &value); gtk_tree_store_set(store, &iter, COL_VALUE, new_text, -1); ti68k_register_set_pc(value); } break; case 1: // usp if(validate_value(new_text, 6)) { sscanf(new_text, "%x", &value); gtk_tree_store_set(store, &iter, COL_VALUE, new_text, -1); ti68k_register_set_usp(value); } break; case 2: // ssp if(validate_value(new_text, 6)) { sscanf(new_text, "%x", &value); gtk_tree_store_set(store, &iter, COL_VALUE, new_text, -1); ti68k_register_set_ssp(value); } break; case 3: // sr if(validate_value(new_text, 4)) { sscanf(new_text, "%x", &value); gtk_tree_store_set(store, &iter, COL_VALUE, new_text, -1); ti68k_register_set_sr(value); // update usp <=> ssp dbgregs_refresh_window(); dbgstack_refresh_window(); } break; case 4: // super-flags if(ti68k_register_set_flags(new_text, NULL)) { uint32_t data; gchar *sdata; gtk_tree_store_set(store, &iter, COL_VALUE, new_text, -1); // update sr, too gtk_tree_path_free(path); path = gtk_tree_path_new_from_string("2:2"); if (!gtk_tree_model_get_iter(model, &iter, path)) return; ti68k_register_get_sr(&data); sdata = g_strdup_printf("%04x", data); gtk_tree_store_set(store, &iter, COL_VALUE, sdata, -1); g_free(sdata); // update usp <=> ssp dbgregs_refresh_window(); dbgstack_refresh_window(); } case 5: // user-flags if(ti68k_register_set_flags(NULL, new_text)) { uint32_t data; gchar *sdata; gtk_tree_store_set(store, &iter, COL_VALUE, new_text, -1); // update sr, too gtk_tree_path_free(path); path = gtk_tree_path_new_from_string("2:2"); if (!gtk_tree_model_get_iter(model, &iter, path)) return; ti68k_register_get_sr(&data); sdata = g_strdup_printf("%04x", data); gtk_tree_store_set(store, &iter, COL_VALUE, sdata, -1); g_free(sdata); } break; break; } break; default: break; } gtk_tree_path_free(path); }
GLADE_CB gboolean on_treeview3_button_press_event (GtkWidget *widget, GdkEventButton *event, gpointer user_data) { GtkTreeView *view = GTK_TREE_VIEW(widget); GtkTreeModel *model = gtk_tree_view_get_model(view); GtkTreePath *path; GtkTreeViewColumn *column; GtkTreeIter iter; gboolean ret; gchar *spath; gint i, j; gint col; if(event->type != GDK_BUTTON_PRESS) return FALSE; { // cell selection gint tx = (gint) event->x; gint ty = (gint) event->y; gint cx, cy; ret = gtk_tree_view_get_path_at_pos(view, tx, ty, &path, &column, &cx, &cy); if(ret == FALSE) return FALSE; col = column2index((GtkWidget *)view, column); spath = gtk_tree_path_to_string(path); sscanf(spath, "%i:%i", &i, &j); //gtk_tree_path_free(path); g_free(spath); } if(event->button == 1) // first button clicked { if(!((col == 0) && (i == 2) && ((j == 4) ||(j ==5)))) return FALSE; if(dbgsr_display_dbox() == -1) return TRUE; dbgregs_refresh_window(); dbgstack_refresh_window(); return TRUE; } if (event->button == 3) // third button clicked { GdkEventButton *bevent; GtkWidget *menu; // check for click on regs if(! ( (col == 1) && (i>= 0) && (i <= 1) && (j >= 0) && (j <= 7) ) ) return FALSE; // get iterator if (!gtk_tree_model_get_iter(model, &iter, path)) return FALSE; gtk_tree_path_free(path); gtk_tree_model_get(model, &iter, COL_VALUE, &spath, -1); sscanf(spath, "%x", &value); printf("value = %x\n", value); // popup menu bevent = (GdkEventButton *) (event); menu = display_popup_menu(); gtk_menu_popup(GTK_MENU(menu), NULL, NULL, NULL, NULL, bevent->button, bevent->time); gtk_widget_show(menu); return TRUE; } return FALSE; }