From: <ric...@us...> - 2009-01-05 14:09:21
|
Revision: 1390 http://desmume.svn.sourceforge.net/desmume/?rev=1390&view=rev Author: riccardom Date: 2009-01-05 14:09:17 +0000 (Mon, 05 Jan 2009) Log Message: ----------- Move display size and layers menu out of graphics menu; split frameskip, display size and submenu to separated functions. Modified Paths: -------------- trunk/desmume/src/gtk/main.cpp Modified: trunk/desmume/src/gtk/main.cpp =================================================================== --- trunk/desmume/src/gtk/main.cpp 2009-01-05 13:16:31 UTC (rev 1389) +++ trunk/desmume/src/gtk/main.cpp 2009-01-05 14:09:17 UTC (rev 1390) @@ -1458,33 +1458,43 @@ gtk_menu_shell_append(GTK_MENU_SHELL(pMenuBar), pMenuItem); } -static void desmume_gtk_menu_emulation_graphics (GtkWidget *pMenu, gboolean opengl) +static void desmume_gtk_menu_emulation_frameskip (GtkWidget *pMenu) { + GtkWidget *mFrameskip_Radio[MAX_FRAMESKIP]; GtkWidget *pMenuItem, *pSubmenu; + gchar *buf; + guint i; + + pSubmenu = gtk_menu_new(); + pMenuItem = gtk_menu_item_new_with_label("Frameskip"); + gtk_menu_item_set_submenu(GTK_MENU_ITEM(pMenuItem), pSubmenu); + gtk_menu_shell_append(GTK_MENU_SHELL(pMenu), pMenuItem); + + for(i = 0; i < MAX_FRAMESKIP; i++) { + buf = g_strdup_printf("%d", i); + if (i>0) + mFrameskip_Radio[i] = gtk_radio_menu_item_new_with_label_from_widget(GTK_RADIO_MENU_ITEM(mFrameskip_Radio[i-1]), buf); + else + mFrameskip_Radio[i] = gtk_radio_menu_item_new_with_label(NULL, buf); + g_free(buf); + g_signal_connect(G_OBJECT(mFrameskip_Radio[i]), "activate", G_CALLBACK(Modify_Frameskip), GINT_TO_POINTER(i)); + gtk_menu_shell_append(GTK_MENU_SHELL(pSubmenu), mFrameskip_Radio[i]); + } + gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(mFrameskip_Radio[0]), TRUE); +} + #ifdef BROKEN_SCREENSIZE +static void desmume_gtk_menu_emulation_display_size (GtkWidget *pMenu, gboolean opengl) +{ + GtkWidget *pMenuItem, *pSubmenu; GtkWidget *mSize_Radio[MAX_SCREENCOEFF]; gchar *buf; -#endif - GtkWidget *mLayers_Radio[10]; - const char *Layers_Menu[10] = { - "Main BG 0", - "Main BG 1", - "Main BG 2", - "Main BG 3", - "Main OBJ", - "SUB BG 0", - "SUB BG 1", - "SUB BG 2", - "SUB BG 3", - "SUB OBJ" - }; guint i; /* FIXME: this does not work and there's a lot of code that assume the default screen size, drawing function included */ -#ifdef BROKEN_SCREENSIZE if (!opengl) { pSubmenu = gtk_menu_new(); - pMenuItem = gtk_menu_item_new_with_label("Size"); + pMenuItem = gtk_menu_item_new_with_label("Display size"); gtk_menu_item_set_submenu(GTK_MENU_ITEM(pMenuItem), pSubmenu); gtk_menu_shell_append(GTK_MENU_SHELL(pMenu), pMenuItem); @@ -1499,8 +1509,27 @@ gtk_menu_shell_append(GTK_MENU_SHELL(pSubmenu), mSize_Radio[i]); } } +} #endif +static void desmume_gtk_menu_emulation_layers (GtkWidget *pMenu, gboolean opengl) +{ + GtkWidget *pMenuItem, *pSubmenu; + GtkWidget *mLayers_Radio[10]; + const char *Layers_Menu[10] = { + "Main BG 0", + "Main BG 1", + "Main BG 2", + "Main BG 3", + "Main OBJ", + "SUB BG 0", + "SUB BG 1", + "SUB BG 2", + "SUB BG 3", + "SUB OBJ" + }; + guint i; + pSubmenu = gtk_menu_new(); pMenuItem = gtk_menu_item_new_with_label("Layers"); gtk_menu_item_set_submenu(GTK_MENU_ITEM(pMenuItem), pSubmenu); @@ -1516,10 +1545,7 @@ static void desmume_gtk_menu_emulation (GtkWidget *pMenuBar, gboolean opengl) { - GtkWidget *pMenu, *pMenuItem, *pSubmenu; - GtkWidget *mFrameskip_Radio[MAX_FRAMESKIP]; - gchar *buf; - guint i; + GtkWidget *pMenu, *pMenuItem; pMenu = gtk_menu_new(); pMenuItem = gtk_menu_item_new_with_label("Emulation"); @@ -1530,28 +1556,11 @@ gtk_container_add(GTK_CONTAINER(pMenu), gtk_action_create_menu_item(gtk_action_group_get_action(action_group, "pause"))); gtk_container_add(GTK_CONTAINER(pMenu), gtk_action_create_menu_item(gtk_action_group_get_action(action_group, "reset"))); - pSubmenu = gtk_menu_new(); - pMenuItem = gtk_menu_item_new_with_label("Frameskip"); - gtk_menu_item_set_submenu(GTK_MENU_ITEM(pMenuItem), pSubmenu); - gtk_menu_shell_append(GTK_MENU_SHELL(pMenu), pMenuItem); - - for(i = 0; i < MAX_FRAMESKIP; i++) { - buf = g_strdup_printf("%d", i); - if (i>0) - mFrameskip_Radio[i] = gtk_radio_menu_item_new_with_label_from_widget(GTK_RADIO_MENU_ITEM(mFrameskip_Radio[i-1]), buf); - else - mFrameskip_Radio[i] = gtk_radio_menu_item_new_with_label(NULL, buf); - g_free(buf); - g_signal_connect(G_OBJECT(mFrameskip_Radio[i]), "activate", G_CALLBACK(Modify_Frameskip), GINT_TO_POINTER(i)); - gtk_menu_shell_append(GTK_MENU_SHELL(pSubmenu), mFrameskip_Radio[i]); - } - gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(mFrameskip_Radio[0]), TRUE); - - pSubmenu = gtk_menu_new(); - pMenuItem = gtk_menu_item_new_with_label("Graphics"); - gtk_menu_item_set_submenu(GTK_MENU_ITEM(pMenuItem), pSubmenu); - gtk_menu_shell_append(GTK_MENU_SHELL(pMenu), pMenuItem); - desmume_gtk_menu_emulation_graphics(pSubmenu, opengl); + desmume_gtk_menu_emulation_frameskip(pMenu); + desmume_gtk_menu_emulation_layers(pMenu, opengl); +#ifdef BROKEN_SCREENSIZE + desmume_gtk_menu_emulation_display_size(pMenu, opengl); +#endif } static void desmume_gtk_menu_config (GtkWidget *pMenuBar) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |