diff --git a/desmume/src/gtk-glade/callbacks.c b/desmume/src/gtk-glade/callbacks.c index aa1813d12..bd71518c4 100755 --- a/desmume/src/gtk-glade/callbacks.c +++ b/desmume/src/gtk-glade/callbacks.c @@ -2,10 +2,27 @@ /* globals */ uint Frameskip = 0; +gboolean ScreenRight=FALSE; +gboolean ScreenGap=FALSE; /* inline & protos */ -void inline MAINWINDOW_RESIZE() { +void MAINWINDOW_RESIZE() { + GtkWidget * spacer1 = glade_xml_get_widget(xml, "misc_sep3"); + GtkWidget * spacer2 = glade_xml_get_widget(xml, "misc_sep4"); + int dim = 66 * ScreenCoeff_Size; + + /* sees whether we want a gap */ + if (!ScreenGap) dim = -1; + if (ScreenRight && ScreenRotate) { + gtk_widget_set_usize(spacer1, dim, -1); + } else if (!ScreenRight && !ScreenRotate) { + gtk_widget_set_usize(spacer2, -1, dim); + } else { + gtk_widget_set_usize(spacer1, -1, -1); + gtk_widget_set_usize(spacer2, -1, -1); + } + gtk_window_resize ((GtkWindow*)pWindow,1,1); } @@ -155,14 +172,23 @@ void on_menu_audio_on_activate (GtkMenuItem *menuitem, gpointer user_data) { } } +void on_menu_gapscreen_activate (GtkMenuItem *menuitem, gpointer user_data) { + /* we want to add a gap between screens */ + ScreenGap = gtk_check_menu_item_get_active((GtkCheckMenuItem*)menuitem); + + /* pack the window */ + MAINWINDOW_RESIZE(); +} + void on_menu_rightscreen_activate (GtkMenuItem *menuitem, gpointer user_data) { GtkBox * sbox = (GtkBox*)glade_xml_get_widget(xml, "whb_Sub"); GtkWidget * mbox = glade_xml_get_widget(xml, "whb_Main"); GtkWidget * vbox = glade_xml_get_widget(xml, "wvb_Layout"); GtkWidget * w = glade_xml_get_widget(xml, "wvb_2_Sub"); + ScreenRight=gtk_check_menu_item_get_active((GtkCheckMenuItem*)menuitem); /* we want to change the layout, lower screen goes left */ - if (gtk_check_menu_item_get_active((GtkCheckMenuItem*)menuitem)==TRUE) { + if (ScreenRight) { gtk_box_reorder_child(sbox,w,-1); gtk_widget_reparent((GtkWidget*)sbox,mbox); } else { @@ -185,33 +211,6 @@ void on_menu_rotatescreen_activate (GtkMenuItem *menuitem, gpointer user_data) resize(ScreenCoeff_Size); } -void on_menu_gapscreen_activate (GtkMenuItem *menuitem, gpointer user_data) { - /* we want to add a gap between screens */ - gboolean ScreenGap = gtk_check_menu_item_get_active((GtkCheckMenuItem*)menuitem); - GtkWidget * spacer = glade_xml_get_widget(xml, "misc_sep4"); - GtkWidget * layoutvbox = glade_xml_get_widget(xml, "wvb_Layout"); - - if (ScreenGap) { - gtk_box_set_child_packing( - layoutvbox, - spacer, - FALSE, - FALSE, - 33, - GTK_PACK_START); - } else { - gtk_box_set_child_packing( - layoutvbox, - spacer, - FALSE, - FALSE, - 0, - GTK_PACK_START); - } - /* Resize so we don't end up with unwanted space at the bottom */ - resize(ScreenCoeff_Size); -} - /* MENU TOOLS ***** ***** ***** ***** */ void on_menu_IO_regs_activate (GtkMenuItem *menuitem, gpointer user_data) { GtkWidget * dlg = glade_xml_get_widget(xml_tools, "wtools_1_IOregs"); diff --git a/desmume/src/gtk-glade/callbacks.h b/desmume/src/gtk-glade/callbacks.h index b8ada0006..80b1775dd 100755 --- a/desmume/src/gtk-glade/callbacks.h +++ b/desmume/src/gtk-glade/callbacks.h @@ -31,9 +31,9 @@ void on_size3x_activate (GtkMenuItem *menuitem, gpointer user_data); /* MENU CONFIG */ void on_menu_controls_activate (GtkMenuItem *menuitem, gpointer user_data); void on_menu_audio_on_activate (GtkMenuItem *menuitem, gpointer user_data); +void on_menu_gapscreen_activate (GtkMenuItem *menuitem, gpointer user_data); void on_menu_rightscreen_activate (GtkMenuItem *menuitem, gpointer user_data); void on_menu_rotatescreen_activate (GtkMenuItem *menuitem, gpointer user_data); -void on_menu_gapscreen_activate (GtkMenuItem *menuitem, gpointer user_data); /* MENU TOOLS */ void on_menu_IO_regs_activate (GtkMenuItem *menuitem, gpointer user_data); /* MENU ? */ diff --git a/desmume/src/gtk-glade/glade/DeSmuMe.glade b/desmume/src/gtk-glade/glade/DeSmuMe.glade index 7947df94e..a8d513963 100755 --- a/desmume/src/gtk-glade/glade/DeSmuMe.glade +++ b/desmume/src/gtk-glade/glade/DeSmuMe.glade @@ -117,7 +117,7 @@ - + True gtk-refresh 1 @@ -328,7 +328,7 @@ - + True gtk-preferences 1 @@ -351,6 +351,16 @@ + + + True + True Gap + True + False + + + + True @@ -370,15 +380,6 @@ - - - True - Gap between screens - True - False - - - @@ -401,7 +402,7 @@ - + True gtk-properties 1 diff --git a/desmume/src/gtk-glade/globals.h b/desmume/src/gtk-glade/globals.h index 55820cabf..ebdf71cd6 100755 --- a/desmume/src/gtk-glade/globals.h +++ b/desmume/src/gtk-glade/globals.h @@ -34,6 +34,9 @@ GladeXML * xml, * xml_tools; /* callbacks_IO.c */ int ScreenCoeff_Size; gboolean ScreenRotate; +gboolean ScreenRight; +gboolean ScreenGap; + void black_screen (); void edit_controls();