Modify functions to work better with Glade

This commit is contained in:
whydoubt 2005-01-10 12:55:27 +00:00
parent c1e36db86f
commit c8b290f790
5 changed files with 139 additions and 203 deletions

View File

@ -1,3 +1,9 @@
Mon Jan 10 06:52:43 CST 2005 Jeff Smith <whydoubt@yahoo.com>
* src/gmdb2/gladefiles/gmdb-debug.glade:
* src/gmdb2/debug.c:
* src/gmdb2/gmdb.h:
* src/gmdb2/table.c: Modify functions to work better with Glade
Wed Jan 5 07:43:07 CST 2005 Jeff Smith <whydoubt@yahoo.com>
* src/gmdb2/debug.c:
* src/gmdb2/file.c:

View File

@ -21,7 +21,6 @@
#include <gtk/gtkmessagedialog.h>
#include <libgnome/gnome-i18n.h>
extern GtkWidget *app;
extern MdbHandle *mdb;
GList *debug_list = NULL;
@ -36,11 +35,10 @@ static GtkTreeIter *gmdb_debug_add_item(GtkTreeStore *store, GtkTreeIter *iter,
static void gmdb_debug_clear(GladeXML *xml);
static void gmdb_debug_dissect(GtkTreeStore *store, char *fbuf, int offset, int len);
static guint16 get_uint16(unsigned char *c);
static guint32 get_uint24(unsigned char *c);
static guint32 get_uint32(unsigned char *c);
static long gmdb_get_max_page(MdbHandle *mdb);
static void gmdb_debug_display_cb(GtkWidget *w, GladeXML *xml);
static void gmdb_debug_display(GladeXML *xml, guint32 page);
static void gmdb_debug_jump(GtkWidget *w, GladeXML *xml, int msb);
/* value to string stuff */
typedef struct GMdbValStr {
@ -103,8 +101,8 @@ GtkWidget *textview;
if (start == -1 || end == -1) return;
start_row = start / 16;
end_row = end / 16;
start_row = LINESZ * (start / 16);
end_row = LINESZ * (end / 16);
start_col = 8 + (start % 16) * 3;
end_col = 8 + (end % 16) * 3;
@ -113,96 +111,89 @@ GtkWidget *textview;
if (start_row == end_row) {
gmdb_debug_text_on(textview,
LINESZ * start_row + start_col,
LINESZ * start_row + end_col + 2);
start_row + start_col,
start_row + end_col + 2);
gmdb_debug_text_on(textview,
LINESZ * start_row + 59 + (start % 16),
LINESZ * start_row + 59 + (end % 16) + 1);
start_row + 59 + (start % 16),
start_row + 59 + (end % 16) + 1);
} else {
gmdb_debug_text_on(textview,
LINESZ * start_row + start_col,
start_row + start_col,
/* 55 = 8 (addr) + 15 (bytes) * 3 (%02x " ") + 2 (last byte) */
LINESZ * start_row + 55);
start_row + 55);
gmdb_debug_text_on(textview,
LINESZ * start_row + 59 + (start % 16),
LINESZ * start_row + 75);
for (i=start_row + 1; i < end_row; i++) {
gmdb_debug_text_on(textview,
LINESZ * i + 8, LINESZ * i + 55);
gmdb_debug_text_on(textview,
LINESZ * i + 59, LINESZ * i + 75);
start_row + 59 + (start % 16),
start_row + 75);
for (i=start_row + LINESZ; i < end_row; i++) {
gmdb_debug_text_on(textview, i + 8, i + 55);
gmdb_debug_text_on(textview, i + 59, i + 75);
}
gmdb_debug_text_on(textview,
LINESZ * end_row + 8,
LINESZ * end_row + end_col + 2);
end_row + 8,
end_row + end_col + 2);
gmdb_debug_text_on(textview,
LINESZ * end_row + 59,
LINESZ * end_row + 59 + (end % 16) + 1);
end_row + 59,
end_row + 59 + (end % 16) + 1);
}
}
static void
gmdb_debug_forward_cb(GtkWidget *w, GladeXML *xml)
void
gmdb_debug_forward_cb(GtkWidget *w, gpointer data)
{
guint *nav_elem;
gchar *page;
GtkWidget *win;
GList *nav_list = NULL;
GladeXML *xml;
GList *nav_list;
guint32 page_num;
guint num_items;
win = glade_xml_get_widget (xml, "debug_window");
nav_list = g_object_get_data(G_OBJECT(win),"nav_list");
nav_elem = g_object_get_data(G_OBJECT(win),"nav_elem");
nav_list = g_object_get_data(G_OBJECT(w),"nav_list");
nav_elem = g_object_get_data(G_OBJECT(w),"nav_elem");
num_items = g_list_length(nav_list);
if (!nav_elem || *nav_elem == num_items)
return;
(*nav_elem)++;
g_object_set_data(G_OBJECT(win), "nav_elem", nav_elem);
g_object_set_data(G_OBJECT(w), "nav_elem", nav_elem);
page = g_list_nth_data(nav_list,(*nav_elem) - 1);
page_num = atol(page);
xml = g_object_get_data(G_OBJECT(w), "debugwin_xml");
gmdb_debug_display(xml, page_num);
}
static void
gmdb_debug_back_cb(GtkWidget *w, GladeXML *xml)
void
gmdb_debug_back_cb(GtkWidget *w, gpointer data)
{
guint *nav_elem;
gchar *page;
GtkWidget *win;
GList *nav_list = NULL;
GladeXML *xml;
GList *nav_list;
guint32 page_num;
win = glade_xml_get_widget (xml, "debug_window");
nav_list = g_object_get_data(G_OBJECT(win),"nav_list");
nav_elem = g_object_get_data(G_OBJECT(win),"nav_elem");
nav_list = g_object_get_data(G_OBJECT(w),"nav_list");
nav_elem = g_object_get_data(G_OBJECT(w),"nav_elem");
if (!nav_elem || *nav_elem==1)
return; /* at top of list already */
(*nav_elem)--;
g_object_set_data(G_OBJECT(win), "nav_elem", nav_elem);
g_object_set_data(G_OBJECT(w), "nav_elem", nav_elem);
page = g_list_nth_data(nav_list,(*nav_elem) - 1);
page_num = atol(page);
xml = g_object_get_data(G_OBJECT(w), "debugwin_xml");
gmdb_debug_display(xml, page_num);
}
static void
gmdb_nav_add_page(GladeXML *xml, guint32 page_num)
gmdb_nav_add_page(GtkWidget *win, guint32 page_num)
{
GList *nav_list = NULL;
GList *link = NULL;
GtkWidget *win;
guint *nav_elem;
guint num_items;
char buf[100];
int i;
win = glade_xml_get_widget (xml, "debug_window");
nav_elem = g_object_get_data(G_OBJECT(win),"nav_elem");
if (!nav_elem) {
nav_elem = g_malloc0(sizeof(guint));
}
sprintf(buf, "%lu", (unsigned long)page_num);
nav_list = g_object_get_data(G_OBJECT(win),"nav_list");
/*
@ -221,15 +212,27 @@ gmdb_nav_add_page(GladeXML *xml, guint32 page_num)
*nav_elem = g_list_length(nav_list);
nav_list = g_list_append(nav_list, g_strdup(buf));
nav_list = g_list_append(nav_list,
g_strdup_printf("%lu", (unsigned long)page_num));
*nav_elem = g_list_length(nav_list);
g_object_set_data(G_OBJECT(win), "nav_list", nav_list);
g_object_set_data(G_OBJECT(win), "nav_elem", nav_elem);
}
void
gmdb_debug_jump_cb(GtkWidget *w, gpointer data)
{
gmdb_debug_jump(g_object_get_data(G_OBJECT(w), "debugwin_xml"), 0);
}
void
gmdb_debug_jump_msb_cb(GtkWidget *w, gpointer data)
{
gmdb_debug_jump(g_object_get_data(G_OBJECT(w), "debugwin_xml"), 1);
}
static void
gmdb_debug_jump_cb(GtkWidget *w, GladeXML *xml)
gmdb_debug_jump(GladeXML *xml, int msb)
{
GtkTextView *textview;
GtkTextBuffer *txtbuffer;
@ -249,6 +252,7 @@ gmdb_debug_jump_cb(GtkWidget *w, GladeXML *xml)
return;
}
text = g_strdup(gtk_text_buffer_get_text(txtbuffer, &start, &end, FALSE));
//fprintf(stderr, "selected text = %s\n",text);
hex_digit = strtok(text, " ");
strcpy(page, "0x");
do {
@ -258,84 +262,49 @@ gmdb_debug_jump_cb(GtkWidget *w, GladeXML *xml)
}
strcpy(digits[num_digits++],hex_digit);
} while (num_digits < 4 && (hex_digit = strtok(NULL," ")));
if (msb) {
for (i=0;i<num_digits;i++) {
strcat(page, digits[i]);
}
} else {
for (i=num_digits-1;i>=0;i--) {
strcat(page, digits[i]);
}
}
g_free(text);
//fprintf(stderr, "going to page %s\n",page);
entry = glade_xml_get_widget (xml, "debug_entry");
gtk_entry_set_text(GTK_ENTRY(entry),page);
gmdb_debug_display_cb(w, xml);
gmdb_debug_display_cb(entry, NULL);
}
static void
gmdb_debug_jump_msb_cb(GtkWidget *w, GladeXML *xml)
{
GtkTextView *textview;
GtkTextBuffer *txtbuffer;
GtkTextIter start, end;
GtkWidget *entry;
gchar *text;
gchar page[12];
gchar digits[4][3];
gchar *hex_digit;
int i, num_digits = 0;
textview = (GtkTextView *) glade_xml_get_widget (xml, "debug_textview");
txtbuffer = gtk_text_view_get_buffer(textview);
if (!gtk_text_buffer_get_selection_bounds(txtbuffer, &start, &end)) {
/* FIX ME -- replace with text in status bar */
fprintf(stderr, "Nothing selected\n");
return;
}
text = g_strdup(gtk_text_buffer_get_text(txtbuffer, &start, &end, FALSE));
fprintf(stderr, "selected text = %s\n",text);
hex_digit = strtok(text, " ");
strcpy(page, "0x");
do {
if (strlen(hex_digit)>2) {
fprintf(stderr, "Not a hex value\n");
return;
}
strcpy(digits[num_digits++],hex_digit);
} while (num_digits < 4 && (hex_digit = strtok(NULL," ")));
for (i=0;i<num_digits;i++) {
strcat(page, digits[i]);
}
g_free(text);
fprintf(stderr, "going to page %s\n",page);
entry = glade_xml_get_widget (xml, "debug_entry");
gtk_entry_set_text(GTK_ENTRY(entry),page);
gmdb_debug_display_cb(w, xml);
}
static void
gmdb_debug_display_cb(GtkWidget *w, GladeXML *xml)
/*
* w: pointer to GtkEntry 'debug_entry'
*/
void
gmdb_debug_display_cb(GtkWidget *w, gpointer data)
{
int page;
int i;
GtkWidget *entry;
GtkWidget *win;
gchar *s;
GladeXML *xml;
if (!mdb) return;
entry = glade_xml_get_widget (xml, "debug_entry");
s = g_strdup(gtk_entry_get_text(GTK_ENTRY(entry)));
win = gtk_widget_get_toplevel(w);
xml = g_object_get_data(G_OBJECT(win), "debugwin_xml");
s = g_strdup(gtk_entry_get_text(GTK_ENTRY(w)));
if (!strncmp(s,"0x",2)) {
page = 0;
for (i=2;i<strlen(s);i++) {
page *= 16;
if (isupper(s[i]))
s[i] -= 0x20;
page += s[i] > '9' ? s[i] - 'a' + 10 : s[i] - '0';
}
page = strtol(s+2, NULL, 16);
} else {
page = atol(gtk_entry_get_text(GTK_ENTRY(entry)));
page = strtol(s, NULL, 10);
}
g_free(s);
if (page>gmdb_get_max_page(mdb) || page<0) {
GtkWidget* dlg = gtk_message_dialog_new (
GTK_WINDOW(gtk_widget_get_toplevel(w)),
GtkWidget* dlg = gtk_message_dialog_new (GTK_WINDOW(win),
GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_WARNING,
GTK_BUTTONS_CLOSE,
_("Page entered is outside valid page range."));
@ -344,7 +313,7 @@ gmdb_debug_display_cb(GtkWidget *w, GladeXML *xml)
}
/* add to the navigation list */
gmdb_nav_add_page(xml, page);
gmdb_nav_add_page(win, page);
/* gmdb_debug_display handles the mechanics of getting the page up */
gmdb_debug_display(xml, page);
}
@ -361,7 +330,7 @@ gmdb_debug_display(GladeXML *xml, guint32 page)
GtkTextBuffer *buffer;
GtkTextIter iter;
GtkTextView *textview;
GtkWidget *entry;
GtkWidget *entry, *window;
char pagestr[20];
guint *dissect;
GtkWidget *tree;
@ -408,7 +377,8 @@ gmdb_debug_display(GladeXML *xml, guint32 page)
tree = glade_xml_get_widget(xml, "debug_treeview");
store = (GtkTreeView *) gtk_tree_view_get_model(GTK_TREE_VIEW(tree));
dissect = g_object_get_data(G_OBJECT(xml),"dissect");
window = glade_xml_get_widget(xml, "debug_window");
dissect = g_object_get_data(G_OBJECT(window),"dissect");
if (!dissect || *dissect==1)
gmdb_debug_dissect(GTK_TREE_STORE(store), fbuf, 0, length);
@ -450,17 +420,6 @@ i+=c[0];
return i;
}
static guint32
get_uint24(unsigned char *c)
{
guint32 l;
l =c[2]; l<<=8;
l+=c[1]; l<<=8;
l+=c[0];
return l;
}
static guint32
get_uint32(unsigned char *c)
{
guint32 l;
@ -542,13 +501,14 @@ gmdb_debug_add_page_ptr(GtkTreeStore *store, GtkTreeIter *parent, char *fbuf, co
{
gchar str[100];
GtkTreeIter *node;
guint32 pg_row = get_uint32(fbuf+offset);
snprintf(str, 100, "%s", label);
node = gmdb_debug_add_item(store, parent, str, offset, offset+3);
snprintf(str, 100, "Row Number: %u", fbuf[offset]);
snprintf(str, 100, "Row Number: %u", pg_row & 0xff);
gmdb_debug_add_item(store, node, str, offset, offset);
snprintf(str, 100, "Page Number: %lu", (unsigned long)get_uint24(&fbuf[offset+1]));
snprintf(str, 100, "Page Number: %lu", pg_row >> 8);
gmdb_debug_add_item(store, node, str, offset+1, offset+3);
}
static void
@ -974,14 +934,14 @@ gmdb_debug_delete_cb(GtkWidget *w, GladeXML *xml)
{
return FALSE;
}
static void
gmdb_debug_close_cb(GtkWidget *w, GladeXML *xml)
void
gmdb_debug_close_cb(GtkWidget *w, gpointer data)
{
GtkWidget *win;
GladeXML *xml;
xml = g_object_get_data(G_OBJECT(w), "debugwin_xml");
debug_list = g_list_remove(debug_list, xml);
win = glade_xml_get_widget (xml, "debug_window");
if (win) gtk_widget_destroy(win);
gtk_widget_destroy(w);
}
void
gmdb_debug_close_all()
@ -997,12 +957,10 @@ gmdb_debug_close_all()
}
void
gmdb_debug_new_cb(GtkWidget *w, gpointer *data)
gmdb_debug_new_cb(GtkWidget *w, gpointer data)
{
GtkTextView *textview;
guint32 page;
GtkWidget *entry, *mi, *button, *debugwin;
gchar text[20];
GtkWidget *entry, *debugwin;
GladeXML *debugwin_xml;
GtkWidget *tree;
GtkTreeStore *store;
@ -1019,55 +977,11 @@ gmdb_debug_new_cb(GtkWidget *w, gpointer *data)
/* set signals with user data, anyone know how to do this in glade? */
entry = glade_xml_get_widget (debugwin_xml, "debug_entry");
g_signal_connect (G_OBJECT (entry), "activate",
G_CALLBACK (gmdb_debug_display_cb), debugwin_xml);
mi = glade_xml_get_widget (debugwin_xml, "close_menu");
g_signal_connect (G_OBJECT (mi), "activate",
G_CALLBACK (gmdb_debug_close_cb), debugwin_xml);
button = glade_xml_get_widget (debugwin_xml, "close_button");
g_signal_connect (G_OBJECT (button), "clicked",
G_CALLBACK (gmdb_debug_close_cb), debugwin_xml);
mi = glade_xml_get_widget (debugwin_xml, "menu_page");
g_signal_connect (G_OBJECT (mi), "activate",
G_CALLBACK (gmdb_debug_jump_cb), debugwin_xml);
mi = glade_xml_get_widget (debugwin_xml, "menu_page_msb");
g_signal_connect (G_OBJECT (mi), "activate",
G_CALLBACK (gmdb_debug_jump_msb_cb), debugwin_xml);
button = glade_xml_get_widget (debugwin_xml, "jump_button");
g_signal_connect (G_OBJECT (button), "clicked",
G_CALLBACK (gmdb_debug_jump_cb), debugwin_xml);
mi = glade_xml_get_widget (debugwin_xml, "back_menu");
g_signal_connect (G_OBJECT (mi), "activate",
G_CALLBACK (gmdb_debug_back_cb), debugwin_xml);
button = glade_xml_get_widget (debugwin_xml, "back_button");
g_signal_connect (G_OBJECT (button), "clicked",
G_CALLBACK (gmdb_debug_back_cb), debugwin_xml);
mi = glade_xml_get_widget (debugwin_xml, "forward_menu");
g_signal_connect (G_OBJECT (mi), "activate",
G_CALLBACK (gmdb_debug_forward_cb), debugwin_xml);
button = glade_xml_get_widget (debugwin_xml, "forward_button");
g_signal_connect (G_OBJECT (button), "clicked",
G_CALLBACK (gmdb_debug_forward_cb), debugwin_xml);
mi = glade_xml_get_widget (debugwin_xml, "dissector");
g_signal_connect (G_OBJECT (mi), "activate",
G_CALLBACK (gmdb_debug_set_dissect_cb), debugwin_xml);
button = glade_xml_get_widget (debugwin_xml, "debug_button");
g_signal_connect (G_OBJECT (button), "clicked",
G_CALLBACK (gmdb_debug_display_cb), debugwin_xml);
debugwin = glade_xml_get_widget (debugwin_xml, "debug_window");
gtk_signal_connect (GTK_OBJECT (debugwin), "delete_event",
GTK_SIGNAL_FUNC (gmdb_debug_delete_cb), debugwin_xml);
g_signal_connect (G_OBJECT (debugwin), "delete_event",
G_CALLBACK (gmdb_debug_delete_cb), debugwin_xml);
g_object_set_data (G_OBJECT (debugwin), "debugwin_xml", debugwin_xml);
/* this should be a preference, needs to be fixed width */
textview = (GtkTextView *) glade_xml_get_widget (debugwin_xml, "debug_textview");
@ -1079,14 +993,6 @@ gmdb_debug_new_cb(GtkWidget *w, gpointer *data)
store = gtk_tree_store_new(3, G_TYPE_STRING, G_TYPE_INT, G_TYPE_INT);
gtk_tree_view_set_model(GTK_TREE_VIEW(tree), GTK_TREE_MODEL(store));
button = glade_xml_get_widget (debugwin_xml, "debug_button");
g_signal_connect (G_OBJECT (button), "clicked",
G_CALLBACK (gmdb_debug_display_cb), debugwin_xml);
debugwin = glade_xml_get_widget (debugwin_xml, "debug_window");
gtk_signal_connect (GTK_OBJECT (debugwin), "delete_event",
GTK_SIGNAL_FUNC (gmdb_debug_delete_cb), debugwin_xml);
renderer = gtk_cell_renderer_text_new();
column = gtk_tree_view_column_new_with_attributes("Field",
renderer, "text", 0, NULL);
@ -1101,37 +1007,43 @@ gmdb_debug_new_cb(GtkWidget *w, gpointer *data)
if (mdb) {
gmdb_debug_init(mdb, debugwin_xml);
if (data) {
page = *((guint32 *)data);
sprintf(text,"%lu",(unsigned long)page);
gtk_entry_set_text(GTK_ENTRY(entry),text);
gmdb_debug_display_cb(w, debugwin_xml);
gchar *text;
guint32 page = *((guint32 *)data);
text = g_strdup_printf("%lu", (unsigned long)page);
gtk_entry_set_text(GTK_ENTRY(entry), text);
g_free(text);
gmdb_debug_display_cb(entry, NULL);
}
}
}
void
gmdb_debug_set_dissect_cb(GtkWidget *w, GladeXML *xml)
gmdb_debug_set_dissect_cb(GtkWidget *w, gpointer data)
{
guint *dissect;
//win = glade_xml_get_widget (xml, "debug_window");
dissect = g_object_get_data(G_OBJECT(xml),"dissect");
dissect = g_object_get_data(G_OBJECT(w),"dissect");
if (!dissect) return;
//printf("here %d\n", *dissect);
*dissect = *dissect ? 0 : 1;
g_object_set_data(G_OBJECT(xml), "dissect", dissect);
g_object_set_data(G_OBJECT(w), "dissect", dissect);
}
static void gmdb_debug_init(MdbHandle *mdb, GladeXML *xml)
{
char tmpstr[100];
GtkWidget *pglabel, *entry;
gchar *str;
GtkWidget *pglabel, *entry, *window;
guint *dissect;
pglabel = glade_xml_get_widget (xml, "debug_num_label");
sprintf(tmpstr, "(0-%d):", (int)gmdb_get_max_page(mdb));
gtk_label_set_text(GTK_LABEL(pglabel), tmpstr);
str = g_strdup_printf("(0-%d):", (int)gmdb_get_max_page(mdb));
gtk_label_set_text(GTK_LABEL(pglabel), str);
g_free(str);
entry = glade_xml_get_widget (xml, "debug_entry");
gtk_widget_grab_focus(GTK_WIDGET(entry));
window = glade_xml_get_widget (xml, "debug_window");
dissect = g_malloc0(sizeof(guint));
*dissect = 1;
g_object_set_data(G_OBJECT(xml), "dissect", dissect);
g_object_set_data(G_OBJECT(window), "dissect", dissect);
}

View File

@ -59,6 +59,7 @@
<widget class="GtkImageMenuItem" id="close_menu">
<property name="visible">True</property>
<property name="stock_item">GNOMEUIINFO_MENU_CLOSE_ITEM</property>
<signal name="activate" handler="gmdb_debug_close_cb"/>
</widget>
</child>
</widget>
@ -80,6 +81,7 @@
<property name="label" translatable="yes">_Dissector</property>
<property name="use_underline">True</property>
<property name="active">True</property>
<signal name="activate" handler="gmdb_debug_set_dissect_cb" object="debug_window"/>
</widget>
</child>
@ -88,6 +90,7 @@
<property name="visible">True</property>
<property name="label" translatable="yes">_Back</property>
<property name="use_underline">True</property>
<signal name="activate" handler="gmdb_debug_back_cb" object="debug_window"/>
</widget>
</child>
@ -97,6 +100,7 @@
<property name="stock_item">GNOMEUIINFO_MENU_NEW_ITEM</property>
<property name="label" translatable="yes">_Forward</property>
<property name="use_underline">True</property>
<signal name="activate" handler="gmdb_debug_forward_cb" object="debug_window"/>
</widget>
</child>
@ -111,6 +115,7 @@
<property name="visible">True</property>
<property name="label" translatable="yes">_Selected Page</property>
<property name="use_underline">True</property>
<signal name="activate" handler="gmdb_debug_jump_cb" object="debug_window"/>
</widget>
</child>
@ -119,6 +124,7 @@
<property name="visible">True</property>
<property name="label" translatable="yes">Selected Page (_MSB)</property>
<property name="use_underline">True</property>
<signal name="activate" handler="gmdb_debug_jump_msb_cb" object="debug_window"/>
</widget>
</child>
</widget>
@ -182,9 +188,10 @@
<child>
<widget class="button" id="back_button">
<property name="visible">True</property>
<property name="tooltip" translatable="yes">New File</property>
<property name="tooltip" translatable="yes">Back</property>
<property name="label">gtk-go-back</property>
<property name="use_stock">True</property>
<signal name="clicked" handler="gmdb_debug_back_cb" object="debug_window"/>
<property name="new_group">True</property>
</widget>
<packing>
@ -195,9 +202,10 @@
<child>
<widget class="button" id="forward_button">
<property name="visible">True</property>
<property name="tooltip" translatable="yes">Open File</property>
<property name="tooltip" translatable="yes">Forward</property>
<property name="label">gtk-go-forward</property>
<property name="use_stock">True</property>
<signal name="clicked" handler="gmdb_debug_forward_cb" object="debug_window"/>
</widget>
</child>
@ -206,6 +214,7 @@
<property name="visible">True</property>
<property name="label">gtk-jump-to</property>
<property name="use_stock">True</property>
<signal name="clicked" handler="gmdb_debug_jump_cb" object="debug_window"/>
</widget>
</child>
@ -215,6 +224,7 @@
<property name="tooltip" translatable="yes">Save File</property>
<property name="label">gtk-close</property>
<property name="use_stock">True</property>
<signal name="clicked" handler="gmdb_debug_close_cb" object="debug_window"/>
<property name="new_group">True</property>
</widget>
<packing>
@ -305,6 +315,7 @@
<property name="has_frame">True</property>
<property name="invisible_char" translatable="yes">*</property>
<property name="activates_default">False</property>
<signal name="activate" handler="gmdb_debug_display_cb"/>
</widget>
<packing>
<property name="padding">0</property>
@ -320,6 +331,7 @@
<property name="label" translatable="yes">_Display</property>
<property name="use_underline">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<signal name="clicked" handler="gmdb_debug_display_cb" object="debug_entry"/>
</widget>
<packing>
<property name="padding">0</property>

View File

@ -57,8 +57,14 @@ void gmdb_table_add_tab(GtkWidget *notebook);
void gmdb_debug_tab_new(GtkWidget *notebook);
/* debug.c */
void gmdb_debug_new_cb(GtkWidget *w, gpointer *data);
void gmdb_debug_set_dissect_cb(GtkWidget *w, GladeXML *xml);
void gmdb_debug_jump_cb(GtkWidget *w, gpointer data);
void gmdb_debug_jump_msb_cb(GtkWidget *w, gpointer data);
void gmdb_debug_display_cb(GtkWidget *w, gpointer data);
void gmdb_debug_close_cb(GtkWidget *w, gpointer data);
void gmdb_debug_forward_cb(GtkWidget *w, gpointer data);
void gmdb_debug_back_cb(GtkWidget *w, gpointer data);
void gmdb_debug_new_cb(GtkWidget *w, gpointer data);
void gmdb_debug_set_dissect_cb(GtkWidget *w, gpointer data);
void gmdb_debug_close_all(void);
/* sql.c */

View File

@ -39,7 +39,7 @@ MdbCatalogEntry *entry;
}
entry = g_ptr_array_index(mdb->catalog,selected_table);
gmdb_debug_new_cb(w, (gpointer *) &entry->table_pg);
gmdb_debug_new_cb(w, (gpointer) &entry->table_pg);
}
void
gmdb_table_def_cb(GtkList *list, GtkWidget *w, gpointer data)