~ubuntu-branches/ubuntu/breezy/tiemu/breezy

« back to all changes in this revision

Viewing changes to src/gui/old_gtk/gtk_dbkpt_cb.c

  • Committer: Bazaar Package Importer
  • Author(s): Julien BLACHE
  • Date: 2005-06-02 16:50:15 UTC
  • mfrom: (1.2.1 upstream) (2.1.1 sarge)
  • Revision ID: james.westby@ubuntu.com-20050602165015-59ab24414tl2wzol
Tags: 1.99+svn1460-1
* New snapshot.
* debian/control:
  + Updated build-depends.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
#ifdef HAVE_CONFIG_H
2
 
#  include <config.h>
3
 
#endif
4
 
 
5
 
#include <gtk/gtk.h>
6
 
 
7
 
#include "gtk_dbkpt_cb.h"
8
 
#include "gtk_dbkpt_dbox.h"
9
 
#include "support.h"
10
 
 
11
 
#include "platform.h"
12
 
#include "struct.h"
13
 
#include "extern.h"
14
 
#include "specific.h"
15
 
#include "gtk_adbkpt_cb.h"
16
 
#include "gtk_adbkpt_dbox.h"
17
 
 
18
 
#include "lib68k.h"
19
 
 
20
 
extern DATA_BKPT db;
21
 
 
22
 
gint display_data_bkpts_dbox()
23
 
{
24
 
  GtkWidget *dbox;
25
 
  gpointer user_data;
26
 
  GtkWidget *clist;
27
 
  GtkStyle *style;
28
 
  GdkFont *fixed_font;
29
 
  gchar *row_text[3];
30
 
  gint i;
31
 
  gchar buffer[MAXCHARS];
32
 
  gint cw;
33
 
  DATA_BKPT *s;
34
 
 
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);
38
 
 
39
 
  user_data = gtk_object_get_data(GTK_OBJECT(dbox), "clist4");
40
 
  clist = user_data;
41
 
  gtk_clist_clear((GtkCList *)clist);
42
 
 
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');
47
 
 
48
 
  for(i=0; i<3; i++) row_text[i] = NULL;
49
 
  for(i=0; i<g_list_length(bkpt_access_list); i++)
50
 
    {
51
 
      s = (DATA_BKPT *)g_list_nth_data(bkpt_access_list, i);
52
 
      //DISPLAY("%i, s->id: %i\n", i, s->id);
53
 
      if(s->mode & BK_READ)
54
 
        {
55
 
          sprintf(buffer, "Read of %06X-%06X\n", 
56
 
                  s->address, s->address);
57
 
        }
58
 
      if(s->mode & BK_WRITE)
59
 
        {
60
 
          sprintf(buffer, "Write of %06X/%06X\n",
61
 
                  s->address, s->address);
62
 
        }
63
 
     
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");
68
 
      else
69
 
        sprintf(buffer, "Read & Write");
70
 
      row_text[0] = g_strdup(buffer);
71
 
 
72
 
      if(s->mode & BK_BYTE)
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");
78
 
      else
79
 
        sprintf(buffer, "Byte");
80
 
      row_text[1] = g_strdup(buffer);
81
 
      row_text[2] = g_strdup_printf("%06X", s->address);
82
 
 
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);
87
 
    }
88
 
  for(i=0; i<3; i++) 
89
 
    g_free(row_text[i]);
90
 
  
91
 
  gtk_widget_show_all(dbox);
92
 
  return 0;
93
 
}
94
 
 
95
 
 
96
 
/* A row of the Data Breakpoint DBox has been selected */
97
 
void
98
 
on_clist4_select_row                   (GtkCList        *clist,
99
 
                                        gint             row,
100
 
                                        gint             column,
101
 
                                        GdkEvent        *event,
102
 
                                        gpointer         user_data)
103
 
{
104
 
  data_bkpt_selected_row = row;
105
 
}
106
 
 
107
 
 
108
 
/* A row of the Data Breakpoint DBox has been unselected */
109
 
void
110
 
on_clist4_unselect_row                 (GtkCList        *clist,
111
 
                                        gint             row,
112
 
                                        gint             column,
113
 
                                        GdkEvent        *event,
114
 
                                        gpointer         user_data)
115
 
{
116
 
  data_bkpt_selected_row = -1;
117
 
}
118
 
 
119
 
 
120
 
/* Add button of the 'Data breakpoints dialog box' */
121
 
void
122
 
on_button_add_clicked                  (GtkButton       *button,
123
 
                                        gpointer         user_data)
124
 
{
125
 
  gtk_widget_show(create_add_data_bkpt_dbox());
126
 
}
127
 
 
128
 
 
129
 
/* Delete button of the 'Data breakpoints dialog box' */
130
 
/* Remove the selected data breakpoint */
131
 
void
132
 
on_button_del_clicked                  (GtkButton       *button,
133
 
                                        gpointer         user_data)
134
 
{
135
 
  gint id;
136
 
  GtkWidget *clist = GTK_WIDGET(user_data);
137
 
  int i;
138
 
  DATA_BKPT *s = NULL;
139
 
 
140
 
  if(data_bkpt_selected_row != -1)
141
 
    {
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);
147
 
      
148
 
      // retrieve structure associated with id
149
 
      for(i=0; i<g_list_length(bkpt_access_list); i++)
150
 
        {
151
 
          s = (DATA_BKPT *)g_list_nth_data(bkpt_access_list, i);
152
 
          if((s->id) == id)
153
 
            {
154
 
              //DISPLAY("id found\n");
155
 
              break;
156
 
            }
157
 
        }
158
 
 
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);
163
 
    }
164
 
}
165
 
 
166
 
/* Ok button of the 'Data breakpoints dialog box' */
167
 
void
168
 
on_button_ok39_clicked                   (GtkButton       *button,
169
 
                                        gpointer         user_data)
170
 
{
171
 
  gtk_widget_destroy(user_data);
172
 
}
173
 
 
174
 
 
175
 
void
176
 
on_data_bkpts_dbox_destroy             (GtkWidget       *widget,
177
 
                                        gpointer         user_data)
178
 
{
179
 
 
180
 
}