12 #include "dreamcast.h"
17 on_new_file1_activate (GtkMenuItem *menuitem,
25 on_open1_activate (GtkMenuItem *menuitem,
28 open_file_dialog( "Open...", open_file, NULL, NULL );
33 on_save1_activate (GtkMenuItem *menuitem,
41 on_save_as1_activate (GtkMenuItem *menuitem,
49 on_exit1_activate (GtkMenuItem *menuitem,
57 on_preferences1_activate (GtkMenuItem *menuitem,
65 on_about1_activate (GtkMenuItem *menuitem,
68 GtkWidget *about = create_about_win();
69 gtk_widget_show(about);
74 on_load_btn_clicked (GtkButton *button,
77 open_file_dialog( "Open...", load_bin_file, NULL, NULL );
82 on_reset_btn_clicked (GtkButton *button,
92 on_stop_btn_clicked (GtkButton *button,
95 if( sh4_isrunning() ) {
102 on_step_btn_clicked (GtkButton *button,
105 sh4_execute_instruction();
111 on_run_btn_clicked (GtkButton *button,
114 debug_info_t data = get_debug_info(GTK_WIDGET(button));
120 on_runto_btn_clicked (GtkButton *button,
123 debug_info_t data = get_debug_info(GTK_WIDGET(button));
124 if( selected_pc == -1 )
125 WARN( "No address selected, so can't run to it", NULL );
127 INFO( "Running until %08X...", selected_pc );
128 sh4_set_breakpoint( selected_pc, BREAK_ONESHOT );
135 on_break_btn_clicked (GtkButton *button,
143 on_debug_win_delete_event (GtkWidget *widget,
153 on_disasm_list_select_row (GtkCList *clist,
159 debug_info_t data = get_debug_info(GTK_WIDGET(clist));
160 selected_pc = row_to_address(data, row);
165 on_disasm_list_unselect_row (GtkCList *clist,
171 debug_info_t data = get_debug_info(GTK_WIDGET(clist));
172 int pc = row_to_address(data,row);
173 if( selected_pc == pc ) selected_pc = -1;
178 on_mem_mapped_regs1_activate (GtkMenuItem *menuitem,
186 on_mmr_win_delete_event (GtkWidget *widget,
196 on_mmr_close_clicked (GtkButton *button,
204 on_mode_field_changed (GtkEditable *editable,
207 const gchar *text = gtk_entry_get_text( GTK_ENTRY(editable) );
208 debug_info_t data = get_debug_info( GTK_WIDGET(editable) );
209 set_disassembly_cpu( data, text );
214 on_page_locked_btn_toggled (GtkToggleButton *togglebutton,
222 on_page_field_key_press_event (GtkWidget *widget,
226 if( event->keyval == GDK_Return || event->keyval == GDK_Linefeed ) {
227 debug_info_t data = get_debug_info(widget);
228 const gchar *text = gtk_entry_get_text( GTK_ENTRY(widget) );
230 unsigned int val = strtoul( text, &endptr, 16 );
231 if( text == endptr ) { /* invalid input */
233 sprintf( buf, "%08X", row_to_address(data,0) );
234 gtk_entry_set_text( GTK_ENTRY(widget), buf );
236 set_disassembly_region(data, val);
244 on_output_list_select_row (GtkCList *clist,
250 if( event->type == GDK_2BUTTON_PRESS && event->button.button == 1 ) {
252 gtk_clist_get_text( clist, row, 1, &val );
253 if( val[0] != '\0' ) {
254 int addr = strtoul( val, NULL, 16 );
255 debug_info_t data = get_debug_info( GTK_WIDGET(clist) );
256 jump_to_disassembly( data, addr, TRUE );
263 on_jump_pc_btn_clicked (GtkButton *button,
266 debug_info_t data = get_debug_info( GTK_WIDGET(button) );
267 jump_to_pc( data, TRUE );
272 on_button_add_watch_clicked (GtkButton *button,
280 on_button_clear_all_clicked (GtkButton *button,
288 on_button_close_clicked (GtkButton *button,
296 on_view_memory_activate (GtkMenuItem *menuitem,
304 on_loadstate_button_clicked (GtkToolButton *toolbutton,
307 open_file_dialog( "Load state...", dreamcast_load_state, "*.dst", "DreamOn Save State (*.dst)" );
312 on_savestate_button_clicked (GtkToolButton *toolbutton,
315 save_file_dialog( "Save state...", dreamcast_save_state, "*.dst", "DreamOn Save State (*.dst)" );
.