diff --git a/desmume/src/gtk-glade/dTools/callbacks_1_ioregs.c b/desmume/src/gtk-glade/dTools/callbacks_1_ioregs.c index 381c7e70b..50bbdb6b1 100755 --- a/desmume/src/gtk-glade/dTools/callbacks_1_ioregs.c +++ b/desmume/src/gtk-glade/dTools/callbacks_1_ioregs.c @@ -20,11 +20,15 @@ */ #include "callbacks_dtools.h" +#include "dTools_display.h" /* ***** ***** IO REGISTERS ***** ***** */ static int cpu=0; -static BOOL autorefresh; +static BOOL init=FALSE; +static int size_=0; +static dTools_dsp dsp; +static void update_regs_fast(); static void update_regs(); /* Register name list */ @@ -50,30 +54,86 @@ const reg_name_addr Reg_Names_Addr[NBR_IO_REGS] = /* update */ static void wtools_1_update () { - if(autorefresh) update_regs(); + update_regs_fast(); } + + /* Update register display */ + +static u32 mem[NBR_IO_REGS]; + +static void update_regs_fast(){ + char text[10], *mask; + int i; u32 w, m; + for( i = 0; i < NBR_IO_REGS; i++ ) + { + w = MMU_read32(cpu,Reg_Names_Addr[i].addr); + m = mem[i]; + if ( Reg_Names_Addr[i].trunc ) { + mask = " 0x%04X"; + w &= 0xFFFF; + m &= 0xFFFF; + } else { + mask = "0x%08X"; + } + mem[i] = w; + if (w == m) continue; + + sprintf(text, mask, w); + dTools_display_select_attr(&dsp, 2); + dTools_display_clear_char(&dsp, size_+3, i, 10); + dTools_display_draw_text(&dsp, size_+3, i, text); + } +} + static void update_regs() { - char lbl_name[40]; - char lbl_text[40]; - char * mask; - GtkWidget * lbl; - int i; - u32 w; + char text[80], *mask; + int len, i; - for( i = 0; i < NBR_IO_REGS; i++ ) - { - mask = ( Reg_Names_Addr[i].trunc ) ? "0x%04X" : "0x%08X"; - sprintf(lbl_name,"wtools_1_%s_value\0\0", Reg_Names_Addr[i].name); - w = MMU_read32(cpu,Reg_Names_Addr[i].addr); - sprintf(lbl_text, mask, w); - lbl = glade_xml_get_widget(xml_tools, lbl_name); - gtk_label_set_text((GtkLabel *)lbl, lbl_text); - } + if (init==FALSE) { + GtkWidget * wPaint = glade_xml_get_widget(xml_tools, "wtools_1_draw"); + + for( i = 0; i < NBR_IO_REGS; i++ ) { + len = strlen(Reg_Names_Addr[i].name); + if (size_ "); + dTools_display_add_markup(&dsp, "0x00000000"); + dTools_display_add_markup(&dsp, "0x00000000"); + init=TRUE; + } + + dTools_display_clear(&dsp); + for( i = 0; i < NBR_IO_REGS; i++ ) + { + mask = ( Reg_Names_Addr[i].trunc ) ? " 0x%04X" : "0x%08X"; + mem[i] = MMU_read32(cpu,Reg_Names_Addr[i].addr); + sprintf(text, mask, mem[i]); + + dTools_display_select_attr(&dsp, 0); + dTools_display_draw_text(&dsp, 0, i, Reg_Names_Addr[i].name); + dTools_display_draw_text(&dsp, size_, i, " : "); + dTools_display_select_attr(&dsp, 1); + dTools_display_draw_text(&dsp, size_+3, i, text); + } } +gboolean on_wtools_1_draw_button_release_event(GtkWidget *widget, GdkEventButton *event, gpointer user_data) { + // clear the red marks :) + if (event->button==1) + update_regs(); +} +gboolean on_wtools_1_draw_expose_event (GtkWidget *widget, GdkEventExpose *event, gpointer user_data) { + update_regs(); + return TRUE; +} + + void on_wtools_1_combo_cpu_changed (GtkComboBox *widget, gpointer user_data) { /* c == 0 means ARM9 */ cpu=gtk_combo_box_get_active(widget); @@ -82,10 +142,11 @@ void on_wtools_1_combo_cpu_changed (GtkComboBox *widget, gpointer user_data) /* show, register, unregister */ void on_wtools_1_IOregs_show (GtkWidget *widget, gpointer user_data) { - GtkWidget * combo = glade_xml_get_widget(xml_tools, "wtools_1_combo_cpu"); - - // do as if we had selected this button and ARM7 cpu - gtk_combo_box_set_active((GtkComboBox*)combo, 0); + GtkWidget * combo = glade_xml_get_widget(xml_tools, "wtools_1_combo_cpu"); + + // do as if we had selected this button and ARM7 cpu + gtk_combo_box_set_active((GtkComboBox*)combo, 0); + register_Tool(wtools_1_update); } gboolean on_wtools_1_IOregs_close (GtkWidget *widget, ...) { @@ -94,24 +155,3 @@ gboolean on_wtools_1_IOregs_close (GtkWidget *widget, ...) { return TRUE; } -void on_wtools_1_autorefresh_toggled (GtkToggleButton *tb, gpointer user_data) -{ - GtkWidget * b = glade_xml_get_widget(xml_tools, "wtools_1_refresh"); - if( gtk_toggle_button_get_active(tb) == TRUE ) - { - autorefresh = TRUE; - register_Tool(wtools_1_update); - gtk_widget_set_sensitive( b, FALSE ); - } - else - { - autorefresh = FALSE; - unregister_Tool(wtools_1_update); - gtk_widget_set_sensitive( b, TRUE ); - } -} - -void on_wtools_1_refresh_clicked (GtkButton *b, gpointer user_data) -{ - update_regs(); -} diff --git a/desmume/src/gtk-glade/dTools/callbacks_2_memview.c b/desmume/src/gtk-glade/dTools/callbacks_2_memview.c index fb4049fe8..5f9f788b1 100755 --- a/desmume/src/gtk-glade/dTools/callbacks_2_memview.c +++ b/desmume/src/gtk-glade/dTools/callbacks_2_memview.c @@ -20,7 +20,7 @@ */ #include "callbacks_dtools.h" - +#include "dTools_display.h" /* ***** ***** MEMORY VIEWER ***** ***** */ @@ -33,13 +33,11 @@ enum SHOW { static BOOL init=FALSE; static enum SHOW packmode=Bit8; static u32 address=0, tmpaddr=0, bpl=0; int cpu=0; -static PangoAttrList *attr_Text8,*attr_Text16,*attr_Text32,*attr_red; static char patt[512]; static u8 mem[0x100]; -static int w,h; +static dTools_dsp dsp; static GtkEntry *wAddress; -static GtkDrawingArea *wPaint; static GtkRange *wRange; static void refresh(); @@ -49,65 +47,55 @@ static void initialize(); /* update */ static void wtools_2_update() { - int i,j, x,y=5; - int px = w/78, qx; - u8 m8, *mem8 =mem; u16 m16, *mem16=(u16*)mem; u32 m32, *mem32=(u32*)mem; + int i,j; + u8 m8, *mem8 =mem; + u16 m16, *mem16=(u16*)mem; + u32 m32, *mem32=(u32*)mem; u32 addr; char txt[16]; - GtkWidget * area = (GtkWidget*)wPaint; - PangoLayout* playout = gtk_widget_create_pango_layout(area, NULL); - GdkGC * GC = area->style->fg_gc[area->state]; - - pango_layout_set_attributes(playout, attr_red); - -#define PAINT_TEXT(w) \ - gdk_draw_rectangle(area->window, area->style->white_gc, TRUE, x, y, w, h); \ - pango_layout_set_text(playout, txt, -1); \ - gdk_draw_layout(area->window, GC, x, y, playout); + // red + dTools_display_select_attr(&dsp, 3); addr = address; switch (packmode) { case Bit8: - for (i=0; i<0x10; i++, y+=h) { - x = 12 * px + 10; qx = 62 * px + 10; - for (j=0; j<16; j++, addr++,mem8++,x+=3*px,qx+=px) { + for (i=0; i<0x10; i++) { + for (j=0; j<16; j++, addr++,mem8++) { m8 = *mem8; *mem8 = MMU_readByte(cpu, addr); if (m8 != *mem8) { sprintf(txt, "%02X", *mem8); - PAINT_TEXT(3*px) + dTools_display_clear_char(&dsp, 12+j, i, 3); + dTools_display_draw_text(&dsp, 12+j, i, txt); } } } break; case Bit16: - for (i=0; i<0x10; i++, y+=h) { - x = 12 * px + 10; qx = 62 * px + 10; - for (j=0; j<8; j++, addr+=2,mem16++,x+=6*px,qx+=2*px) { + for (i=0; i<0x10; i++) { + for (j=0; j<16; j+=2, addr+=2,mem16++) { m16 = *mem16; *mem16 = MMU_readHWord(cpu, addr); if (m16 != *mem16) { sprintf(txt, " %04X", *mem16); - PAINT_TEXT(6*px) + dTools_display_clear_char(&dsp, 12+j, i, 6); + dTools_display_draw_text(&dsp, 12+j, i, txt); } } } break; case Bit32: - for (i=0; i<0x10; i++, y+=h) { - x = 12 * px + 10; qx = 62 * px + 10; - for (j=0; j<4; j++, addr+=4,mem32++,x+=12*px,qx+=4*px) { + for (i=0; i<0x10; i++) { + for (j=0; j<16; j+=4, addr+=4,mem32++) { m32 = *mem32; *mem32 = MMU_readWord(cpu, addr); if (m32 != *mem32) { sprintf(txt, " %08X", *mem32); - PAINT_TEXT(12*px) + dTools_display_clear_char(&dsp, 12+j, i, 12); + dTools_display_draw_text(&dsp, 12+j, i, txt); } } } break; } - g_object_unref(playout); - -#undef PAINT_TEXT } gboolean on_wtools_2_draw_button_release_event(GtkWidget *widget, GdkEventButton *event, gpointer user_data) { @@ -172,6 +160,7 @@ void on_wtools_2_MemView_show (GtkWidget *widget, gpointer user_data) { } gboolean on_wtools_2_MemView_close (GtkWidget *widget, ...) { unregister_Tool(wtools_2_update); + dTools_display_free(&dsp); gtk_widget_hide(widget); return TRUE; } @@ -204,6 +193,7 @@ gboolean on_wtools_2_draw_expose_event (GtkWidget *widget, GdkEventExpose *event static void initialize() { GtkWidget * combo; + GtkWidget * wPaint; GtkAdjustment *adj; int i,j; @@ -214,72 +204,56 @@ static void initialize() { // get widget reference wAddress = (GtkEntry*)glade_xml_get_widget(xml_tools, "wtools_2_GotoAddress"); - wPaint = (GtkDrawingArea*)glade_xml_get_widget(xml_tools, "wtools_2_draw"); wRange = (GtkRange*)glade_xml_get_widget(xml_tools, "wtools_2_scroll"); + wPaint = glade_xml_get_widget(xml_tools, "wtools_2_draw"); - gtk_combo_box_set_active((GtkComboBox*)combo, 0); - gtk_range_set_adjustment(wRange, adj); + dTools_display_init(&dsp, wPaint, 80, 16, 5); - strcpy(patt, "__00000000__"); - pango_parse_markup(patt,-1,0,&attr_red,NULL,NULL,NULL); - #define PATT(x) x"" x "" #define DUP(x) x x - strcpy(patt, "0000:0000 | "); - strcat(patt, DUP(DUP(DUP(PATT("00_")))) ); - strcat(patt, "| 0123456789ABCDEF"); - pango_parse_markup(patt,-1,0,&attr_Text8,NULL,NULL,NULL); - - strcpy(patt, "0000:0000 | "); - strcat(patt, DUP(DUP(PATT("_0000_"))) ); - strcat(patt, "| 0123456789ABCDEF"); - pango_parse_markup(patt,-1,0,&attr_Text16,NULL,NULL,NULL); - - strcpy(patt, "0000:0000 | "); - strcat(patt, DUP(PATT("__00000000__")) ); - strcat(patt, "| 0123456789ABCDEF"); - pango_parse_markup(patt,-1,0,&attr_Text32,NULL,NULL,NULL); + sprintf(patt, "0000:0000 | %s| 0123456789ABCDEF", DUP(DUP(DUP(PATT("00_")))) ); + dTools_display_add_markup(&dsp, patt); + sprintf(patt, "0000:0000 | %s| 0123456789ABCDEF", DUP(DUP(PATT("_0000_"))) ); + dTools_display_add_markup(&dsp, patt); + sprintf(patt, "0000:0000 | %s| 0123456789ABCDEF", DUP(PATT("__00000000__")) ); + dTools_display_add_markup(&dsp, patt); #undef DUP #undef PATT + strcpy(patt, "__00000000__"); + dTools_display_add_markup(&dsp, patt); + init = TRUE; + gtk_combo_box_set_active((GtkComboBox*)combo, 0); + gtk_range_set_adjustment(wRange, adj); change_address(RANGE_MIN); } /* PAINT memory panel */ static void refresh() { - GtkWidget * area = (GtkWidget*)wPaint; - PangoLayout* playout = gtk_widget_create_pango_layout(area, NULL); - GdkGC * GC = area->style->fg_gc[area->state]; - int i,j,addr, x,y; u8 c; + int i,j,addr; + u8 c; u8 *mem8=mem; u16 *mem16=(u16*)mem; u32 *mem32=(u32*)mem; char *ptxt, txt[]="0000:0000 | 00 11 22 33 44 55 66 77 88 99 AA BB CC DD EE FF | 0123456789ABCDEF\0"; - PangoAttrList *attr; - switch(packmode){ - default: - case Bit8: attr=attr_Text8; break; - case Bit16: attr=attr_Text16; break; - case Bit32: attr=attr_Text32; break; - } + if (!init) return; for (i=0; i<0x100; i++) mem[i] = MMU_readByte(cpu, address+i); + dTools_display_clear(&dsp); + switch(packmode) { + case Bit8: dTools_display_select_attr(&dsp, 0); break; + case Bit16: dTools_display_select_attr(&dsp, 1); break; + case Bit32: dTools_display_select_attr(&dsp, 2); break; + } - gdk_draw_rectangle(area->window, area->style->white_gc, TRUE, 0, 0, - area->allocation.width, area->allocation.height); - - pango_layout_set_text(playout, txt, -1); - pango_layout_set_attributes(playout, attr); - pango_layout_get_pixel_size(playout, &w, &h); - gtk_widget_set_usize(area,w+20, (0x10*h)+10); // draw memory content here addr=address; - for (i=0,x=10,y=5; i<0x10; i++,y+=h) { + for (i=0; i<0x10; i++) { ptxt = txt; sprintf(ptxt, "%04X:%04X | ", (addr>>16)&0xFFFF, addr&0xFFFF); ptxt+=12; switch(packmode) { @@ -304,11 +278,6 @@ static void refresh() { mem8 +=16; *(ptxt)=0; - pango_layout_set_text(playout, txt, -1); - pango_layout_set_attributes(playout, attr); - gdk_draw_layout(area->window, GC, x, y, playout); + dTools_display_draw_text(&dsp, 0, i, txt); } - -// done - g_object_unref(playout); } diff --git a/desmume/src/gtk-glade/dTools/callbacks_dtools.h b/desmume/src/gtk-glade/dTools/callbacks_dtools.h index 49991fadb..67d553be7 100755 --- a/desmume/src/gtk-glade/dTools/callbacks_dtools.h +++ b/desmume/src/gtk-glade/dTools/callbacks_dtools.h @@ -22,11 +22,11 @@ #include "../globals.h" /* ***** ***** IO REGISTERS ***** ***** */ -void on_wtools_1_combo_cpu_changed (GtkComboBox *, gpointer ); -void on_wtools_1_IOregs_show (GtkWidget *, gpointer ); -gboolean on_wtools_1_IOregs_close (GtkWidget *, ...); -void on_wtools_1_autorefresh_toggled (GtkToggleButton *, gpointer); -void on_wtools_1_refresh_clicked (GtkButton *, gpointer); +void on_wtools_1_combo_cpu_changed (GtkComboBox *, gpointer ); +void on_wtools_1_IOregs_show (GtkWidget *, gpointer ); +gboolean on_wtools_1_IOregs_close (GtkWidget *, ...); +gboolean on_wtools_1_draw_button_release_event(GtkWidget *, GdkEventButton *, gpointer ); +gboolean on_wtools_1_draw_expose_event (GtkWidget *widget, GdkEventExpose *event, gpointer user_data); /* ***** ***** MEMORY VIEWER ***** ***** */ void on_wtools_2_MemView_show (GtkWidget *, gpointer ); diff --git a/desmume/src/gtk-glade/dTools/dTools_display.h b/desmume/src/gtk-glade/dTools/dTools_display.h new file mode 100755 index 000000000..8d896bb46 --- /dev/null +++ b/desmume/src/gtk-glade/dTools/dTools_display.h @@ -0,0 +1,110 @@ +/* dTools_display.c + * + * Copyright (C) 2007 Damien Nozay (damdoum) + * Author: damdoum at users.sourceforge.net + * + * This file is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This file is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; see the file COPYING. If not, write to + * the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifndef _DTOOLS_DISPLAY_H_ +#define _DTOOLS_DISPLAY_H_ + +#include + +typedef struct { + GtkWidget *widget; + GdkDrawable *draw; + GdkGC *gc_fg; + GdkGC *gc_bg; + PangoLayout* playout; + int size_w, size_h; + int char_w, char_h, padding; + GList * colors_rgb; + GList * attr_list; + PangoAttrList * curr_attr; +} dTools_dsp; + +static void inline dTools_display_set_size(dTools_dsp * dsp, int w, int h, int pad) { + dsp->size_w = w; + dsp->size_h = h; + dsp->padding = pad; +// gtk_widget_set_size_request(dsp->widget, +// dsp->char_w * w + pad * 2, dsp->char_h * h + pad * 2); + gtk_widget_set_usize(dsp->widget, + dsp->char_w * w + pad * 2, dsp->char_h * h + pad * 2); +} + +static void inline dTools_display_init(dTools_dsp * dsp, GtkWidget * widget, int w, int h, int pad) { + dsp->widget = widget; + dsp->draw = widget->window; + dsp->gc_fg = widget->style->fg_gc[widget->state]; + dsp->gc_bg = widget->style->white_gc; + dsp->playout = gtk_widget_create_pango_layout(widget, NULL); + + dsp->colors_rgb = NULL; + dsp->attr_list = NULL; + dsp->curr_attr = NULL; + + pango_layout_set_markup(dsp->playout, "X",-1); + pango_layout_get_pixel_size(dsp->playout, &dsp->char_w, &dsp->char_h); + dTools_display_set_size(dsp, w, h, pad); +} + +// void unref (gpointer data, ...) { +// pango_attr_list_unref(data); +// } + +static void inline dTools_display_free(dTools_dsp * dsp) { +// g_list_foreach(dsp->attr_list, (GFunc)unref, NULL); +// g_object_unref(dsp->playout); // not alloc +} + +static void inline dTools_display_add_markup(dTools_dsp * dsp, const char * markup) { + PangoAttrList *attr; + pango_parse_markup (markup, -1, 0, &attr, NULL, NULL, NULL); + dsp->attr_list = g_list_append(dsp->attr_list, attr); + dsp->curr_attr = attr; +} + +static void inline dTools_display_clear(dTools_dsp * dsp) { + gdk_draw_rectangle(dsp->draw, dsp->gc_bg, TRUE, 0, 0, + dsp->widget->allocation.width, dsp->widget->allocation.height); +} + +static void inline dTools_display_clear_char(dTools_dsp * dsp, int x, int y, int nb) { + gdk_draw_rectangle(dsp->draw, dsp->gc_bg, TRUE, + x * dsp->char_w + dsp->padding, y * dsp->char_h + dsp->padding, + nb * dsp->char_w, dsp->char_h); +} + +static void inline dTools_display_select_attr(dTools_dsp * dsp, int index) { + PangoAttrList *attr = NULL; + attr = g_list_nth_data(dsp->attr_list, index); + if (attr != NULL) { + dsp->curr_attr = attr; + } + pango_layout_set_attributes(dsp->playout, dsp->curr_attr); +} + +static void inline dTools_display_draw_text(dTools_dsp * dsp, int x, int y, char * txt) { + pango_layout_set_text(dsp->playout, txt, -1); + gdk_draw_layout(dsp->draw, dsp->gc_fg, + x * dsp->char_w + dsp->padding, + y * dsp->char_h + dsp->padding, + dsp->playout); +} + +#endif diff --git a/desmume/src/gtk-glade/glade/DeSmuMe_Dtools.glade b/desmume/src/gtk-glade/glade/DeSmuMe_Dtools.glade index 74686d974..356b59089 100755 --- a/desmume/src/gtk-glade/glade/DeSmuMe_Dtools.glade +++ b/desmume/src/gtk-glade/glade/DeSmuMe_Dtools.glade @@ -57,7 +57,7 @@ True - 8 + 2 2 False 0 @@ -78,390 +78,23 @@ cpu : ARM9 0 1 fill + fill - + True - True - 0x0000 - False - False - GTK_JUSTIFY_RIGHT - False - True - 1 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 1 - 2 - 2 - 3 - fill - - - - - - - True - REG_SPICNT - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 + GDK_EXPOSURE_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + + 0 - 1 - 3 - 4 - fill - - - - - - - True - True - 0x0000 - False - False - GTK_JUSTIFY_RIGHT - False - True - 1 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 1 - 2 - 3 - 4 - fill - - - - - - - True - REG_IME - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - 1 - 4 - 5 - fill - - - - - - - True - REG_IE - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - 1 - 5 - 6 - fill - - - - - - - True - REG_IF - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - 1 - 6 - 7 - fill - - - - - - - True - REG_POWCNT1 - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - 1 - 7 - 8 - fill - - - - - - - True - True - 0x0000 - False - False - GTK_JUSTIFY_RIGHT - False - True - 1 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 1 - 2 - 4 - 5 - fill - - - - - - - True - True - 0x00000000 - False - False - GTK_JUSTIFY_RIGHT - False - True - 1 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 1 - 2 - 5 - 6 - fill - - - - - - - True - True - 0x00000000 - False - False - GTK_JUSTIFY_RIGHT - False - True - 1 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 1 - 2 - 6 - 7 - fill - - - - - - - True - True - 0x0000 - False - False - GTK_JUSTIFY_RIGHT - False - True - 1 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 1 - 2 - 7 - 8 - fill - - - - - - - True - True - autorefresh - True - GTK_RELIEF_NORMAL - True - False - False - True - - - - 0 - 1 - 1 - 2 - fill - - - - - - - True - True - _Refresh - True - GTK_RELIEF_NORMAL - True - - - - 1 2 1 2 - - - - - - - True - REG_IPCFIFOCNT - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - 1 - 2 - 3 fill - @@ -536,6 +169,40 @@ cpu : ARM9 0 0 + + + True + GTK_UPDATE_CONTINUOUS + False + 0 0 0 0 0 0 + + + + 1 + 2 + 1 + 2 + fill + fill + + + + + + True + GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + + + + + + 0 + 1 + 1 + 2 + + + True @@ -689,42 +356,9 @@ ARM7 cpu 0 1 fill - - - - - - True - GTK_UPDATE_CONTINUOUS - False - 0 0 0 0 0 0 - - - - 1 - 2 - 1 - 2 - fill fill - - - - True - GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - - - - - - 0 - 1 - 1 - 2 - - 0