7
#include "gtk_dbkpt_cb.h"
8
#include "gtk_dbkpt_dbox.h"
15
#include "gtk_adbkpt_cb.h"
16
#include "gtk_adbkpt_dbox.h"
22
gint display_data_bkpts_dbox()
31
gchar buffer[MAXCHARS];
35
dbox = create_data_bkpts_dbox();
36
user_data = gtk_object_get_data(GTK_OBJECT(dbox), "data_bkpts_dbox");
37
data_bkpt_dbox = GTK_WIDGET(user_data);
39
user_data = gtk_object_get_data(GTK_OBJECT(dbox), "clist4");
41
gtk_clist_clear((GtkCList *)clist);
43
fixed_font = gdk_font_load("-adobe-helvetica-bold-r-normal--12-120-75-75-p-70-iso8859-1");
44
style = gtk_style_new();
45
style->font = fixed_font;
46
cw = gdk_char_width(fixed_font, 'A');
48
for(i=0; i<3; i++) row_text[i] = NULL;
49
for(i=0; i<g_list_length(bkpt_access_list); i++)
51
s = (DATA_BKPT *)g_list_nth_data(bkpt_access_list, i);
52
//DISPLAY("%i, s->id: %i\n", i, s->id);
55
sprintf(buffer, "Read of %06X-%06X\n",
56
s->address, s->address);
58
if(s->mode & BK_WRITE)
60
sprintf(buffer, "Write of %06X/%06X\n",
61
s->address, s->address);
64
if( (s->mode & BK_READ) && !(s->mode & BK_WRITE) )
65
sprintf(buffer, "Read only");
66
else if( (s->mode & BK_WRITE) && !(s->mode & BK_READ) )
67
sprintf(buffer, "Write only");
69
sprintf(buffer, "Read & Write");
70
row_text[0] = g_strdup(buffer);
73
sprintf(buffer, "Byte");
74
else if(s->mode & BK_WORD)
75
sprintf(buffer, "Word");
76
else if(s->mode & BK_LONG)
77
sprintf(buffer, "Long");
79
sprintf(buffer, "Byte");
80
row_text[1] = g_strdup(buffer);
81
row_text[2] = g_strdup_printf("%06X", s->address);
83
gtk_clist_append((GtkCList *)clist, row_text);
84
//DISPLAY("set row data: %i\n", s->id);
85
gtk_clist_set_row_data((GtkCList *)clist, i, GINT_TO_POINTER(s->id));
86
gtk_clist_set_row_style((GtkCList *)clist, i, style);
91
gtk_widget_show_all(dbox);
96
/* A row of the Data Breakpoint DBox has been selected */
98
on_clist4_select_row (GtkCList *clist,
104
data_bkpt_selected_row = row;
108
/* A row of the Data Breakpoint DBox has been unselected */
110
on_clist4_unselect_row (GtkCList *clist,
116
data_bkpt_selected_row = -1;
120
/* Add button of the 'Data breakpoints dialog box' */
122
on_button_add_clicked (GtkButton *button,
125
gtk_widget_show(create_add_data_bkpt_dbox());
129
/* Delete button of the 'Data breakpoints dialog box' */
130
/* Remove the selected data breakpoint */
132
on_button_del_clicked (GtkButton *button,
136
GtkWidget *clist = GTK_WIDGET(user_data);
140
if(data_bkpt_selected_row != -1)
142
/* Remove data breakpoint */
143
// get id associated with the row
144
id = GPOINTER_TO_INT(gtk_clist_get_row_data((GtkCList *)clist, selected_row));
145
//DISPLAY("Selected row: %i\n", data_bkpt_selected_row);
146
//DISPLAY("id: %i\n", id);
148
// retrieve structure associated with id
149
for(i=0; i<g_list_length(bkpt_access_list); i++)
151
s = (DATA_BKPT *)g_list_nth_data(bkpt_access_list, i);
154
//DISPLAY("id found\n");
159
// delete the right id
160
ti68k_delBreakpointAccess(s->id, s->mode);
161
bkpt_access_list = g_list_remove(bkpt_access_list, s);
162
gtk_clist_remove(GTK_CLIST(clist), selected_row);
166
/* Ok button of the 'Data breakpoints dialog box' */
168
on_button_ok39_clicked (GtkButton *button,
171
gtk_widget_destroy(user_data);
176
on_data_bkpts_dbox_destroy (GtkWidget *widget,