more settings dialog tests
authorJavier S. Pedro <maemo@javispedro.com>
Thu, 31 Dec 2009 02:25:55 +0000 (03:25 +0100)
committerJavier S. Pedro <maemo@javispedro.com>
Thu, 31 Dec 2009 02:25:55 +0000 (03:25 +0100)
gui/about.c
gui/controls.c
gui/i18n/es_ES.po
gui/plugin.c
gui/settings.c

index 65ce6ce..b2e45c3 100644 (file)
@@ -33,6 +33,7 @@
 #endif
 
 #include "plugin.h"
+#include "i18n.h"
 
 static GtkDialog* dialog;
 
index c597949..c215585 100644 (file)
@@ -32,6 +32,7 @@
 #include "../platform/hgw.h"
 #include "plugin.h"
 #include "cellrendererkey.h"
+#include "i18n.h"
 
 static GtkDialog* dialog;
 static GtkComboBox* combo;
@@ -281,7 +282,7 @@ void controls_setup()
 
 void controls_dialog(GtkWindow* parent)
 {
-       dialog = GTK_DIALOG(gtk_dialog_new_with_buttons("Controls",
+       dialog = GTK_DIALOG(gtk_dialog_new_with_buttons(_("Controls"),
                parent, GTK_DIALOG_MODAL,
                GTK_STOCK_CLOSE, GTK_RESPONSE_CLOSE, NULL));
 
index ef1ad12..8e4f88a 100644 (file)
@@ -8,8 +8,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: DrNokSnes 1.2.5\n"
 "Report-Msgid-Bugs-To: maemo@javispedro.com\n"
-"POT-Creation-Date: 2009-12-31 02:34+0100\n"
-"PO-Revision-Date: 2009-12-31 02:08+0100\n"
+"POT-Creation-Date: 2009-12-31 03:20+0100\n"
+"PO-Revision-Date: 2009-12-31 03:25+0100\n"
 "Last-Translator: Javier <javier@javispedro.com>\n"
 "Language-Team: Spanish <maemo@javispedro.com>\n"
 "MIME-Version: 1.0\n"
@@ -23,119 +23,145 @@ msgstr ""
 msgid "<no rom selected>"
 msgstr "<sin rom seleccionada>"
 
-#: plugin.c:211
+#: plugin.c:213
 msgid "ROM"
 msgstr "ROM"
 
-#: plugin.c:229
+#: plugin.c:231
 msgid "Select ROM..."
 msgstr "Seleccionar ROM..."
 
-#: plugin.c:246
+#: plugin.c:248
 msgid "Sound"
 msgstr "Sonido"
 
-#: plugin.c:252
+#: plugin.c:254
 msgid "Target framerate"
 msgstr "Velocidad objetivo"
 
-#: plugin.c:269
+#: plugin.c:271
 msgid "Show while in game"
 msgstr "Mostrar durante el juego"
 
-#: plugin.c:273 plugin.c:291
+#: plugin.c:275
+#: plugin.c:293
 msgid "Turbo mode"
 msgstr "Modo Turbo"
 
-#: plugin.c:288
+#: plugin.c:290
 msgid "Enable sound"
 msgstr "Activar sonido"
 
-#: plugin.c:293
+#: plugin.c:295
 msgid "Display framerate"
 msgstr "Mostrar velocidad"
 
-#: plugin.c:312 settings.c:171
+#: plugin.c:314
+#: settings.c:203
 msgid "Accurate graphics"
 msgstr "Mejores gráficos"
 
-#: plugin.c:316
+#: plugin.c:318
 msgid "Framerate:"
 msgstr "Velocidad:"
 
-#: plugin.c:325
+#: plugin.c:327
+#: settings.c:228
 msgid "No speedhacks"
 msgstr "Sin speedhacks"
 
-#: plugin.c:326
+#: plugin.c:328
+#: settings.c:229
 msgid "Safe hacks only"
 msgstr "Sólo hacks seguros"
 
-#: plugin.c:327
+#: plugin.c:329
+#: settings.c:230
 msgid "All speedhacks"
 msgstr "Todos los hacks"
 
-#: plugin.c:421
+#: plugin.c:423
 msgid "Settings…"
 msgstr "Ajustes…"
 
-#: plugin.c:423 plugin.c:444
-msgid "Controls…"
-msgstr "Controles…"
-
-#: plugin.c:425 plugin.c:436
+#: plugin.c:425
+#: plugin.c:434
 msgid "About…"
 msgstr "Acerca de…"
 
-#: plugin.c:435 settings.c:148
+#: plugin.c:433
+#: settings.c:165
 msgid "Settings"
 msgstr "Ajustes"
 
-#: plugin.c:448
+#: plugin.c:442
+msgid "Controls…"
+msgstr "Controles…"
+
+#: plugin.c:446
 msgid "Advanced…"
 msgstr "Avanzados…"
 
-#: plugin.c:510
+#: plugin.c:508
 msgid "No ROM selected"
 msgstr "Sin ROM seleccionada"
 
-#: plugin.c:515
+#: plugin.c:513
 msgid "ROM file does not exist"
 msgstr "El archivo ROM no existe"
 
+#: controls.c:285
+#: settings.c:184
+msgid "Controls"
+msgstr "Controles"
+
 #: cellrendererkey.c:10
 msgid "Press key or…"
 msgstr "Pulsa tecla o…"
 
-#: settings.c:49
+#: settings.c:51
 msgid "Simple 2x zoom (fast)"
 msgstr "Zoom 2X simple (rápido)"
 
-#: settings.c:51 settings.c:57 settings.c:59
+#: settings.c:53
+#: settings.c:59
+#: settings.c:61
 msgid "Simple 2x zoom"
 msgstr "Zoom 2X simple"
 
-#: settings.c:53
+#: settings.c:55
 msgid "Fill the entire screen"
 msgstr "Rellenar toda la pantalla"
 
-#: settings.c:56
+#: settings.c:58
 msgid "Antialiased 2x zoom (fast)"
 msgstr "Zoom 2X suavizado (rápido)"
 
-#: settings.c:62
+#: settings.c:64
 msgid "Original size"
 msgstr "Tamaño original"
 
-#: settings.c:161
-#, fuzzy
-msgid "Controls"
-msgstr "Controles…"
+#: settings.c:191
+msgid "Player 1"
+msgstr "Jugador 1"
 
-#: settings.c:165
+#: settings.c:191
+msgid "Keyboard"
+msgstr "Teclado"
+
+#: settings.c:197
 msgid "Advanced"
 msgstr "Avanzado"
 
-#: settings.c:177
+#: settings.c:210
 msgid "Zoom"
 msgstr "Zoom"
+
+#: settings.c:222
+msgid "Speedhacks"
+msgstr "Speedhacks"
+
+#: about.c:55
+msgid "About"
+msgstr "Acerca de"
+
index d186308..85d684d 100644 (file)
@@ -55,7 +55,7 @@ static void plugin_callback(GtkWidget * menu_item, gpointer data);
 
 GConfClient * gcc = NULL;
 static GameStartupInfo gs;
-static GtkWidget * menu_items[4];
+static GtkWidget * menu_items[2];
 
 static StartupPluginInfo plugin_info = {
        load_plugin,
@@ -167,11 +167,13 @@ static void select_rom_callback(GtkWidget * button, gpointer data)
        }
 }
 
+#if MAEMO_VERSION < 5
 static void controls_item_callback(GtkWidget * button, gpointer data)
 {
        controls_setup();
        controls_dialog(get_parent_window());
 }
+#endif
 
 static void settings_item_callback(GtkWidget * button, gpointer data)
 {
@@ -420,16 +422,12 @@ static GtkWidget **load_menu(guint *nitems)
        menu_items[0] = hildon_gtk_button_new(button_size);
        gtk_button_set_label(GTK_BUTTON(menu_items[0]), _("Settings…"));
        menu_items[1] = hildon_gtk_button_new(button_size);
-       gtk_button_set_label(GTK_BUTTON(menu_items[1]), _("Controls…"));
-       menu_items[2] = hildon_gtk_button_new(button_size);
-       gtk_button_set_label(GTK_BUTTON(menu_items[2]), _("About…"));
-       *nitems = 3;
+       gtk_button_set_label(GTK_BUTTON(menu_items[1]), _("About…"));
+       *nitems = 2;
 
        g_signal_connect(G_OBJECT(menu_items[0]), "clicked",
                                        G_CALLBACK(settings_item_callback), NULL);
        g_signal_connect(G_OBJECT(menu_items[1]), "clicked",
-                                       G_CALLBACK(controls_item_callback), NULL);
-       g_signal_connect(G_OBJECT(menu_items[2]), "clicked",
                                        G_CALLBACK(about_item_callback), NULL);
 #else
        menu_items[0] = gtk_menu_item_new_with_label(_("Settings"));
index 6176b0b..4f5e694 100644 (file)
@@ -26,6 +26,8 @@
 
 #if MAEMO_VERSION >= 5
 #include <hildon/hildon-gtk.h>
+#include <hildon/hildon-pannable-area.h>
+#include <hildon/hildon-button.h>
 #include <hildon/hildon-check-button.h>
 #include <hildon/hildon-picker-button.h>
 #include <hildon/hildon-touch-selector.h>
@@ -64,8 +66,10 @@ static struct scaler scalers[] = {
 
 static GtkDialog* dialog;
 #if MAEMO_VERSION >= 5
+static HildonButton* player1_btn;
 static HildonCheckButton* accu_check;
 static HildonPickerButton* scaler_picker;
+static HildonPickerButton* speedhacks_picker;
 #else
 static GtkComboBox* scaler_combo;
 #endif
@@ -107,6 +111,8 @@ static void load_settings()
        hildon_check_button_set_active(accu_check,
                gconf_client_get_bool(gcc, kGConfTransparency, NULL));
        hildon_picker_button_set_active(scaler_picker, scaler_num);
+       hildon_picker_button_set_active(speedhacks_picker,
+               gconf_client_get_int(gcc, kGConfSpeedhacks, NULL));
 #else
        gtk_combo_box_set_active(scaler_combo, scaler_num);
 #endif
@@ -114,13 +120,18 @@ static void load_settings()
 
 static void save_settings()
 {
+       int scaler_num = 0;
 #if MAEMO_VERSION >= 5
        gconf_client_set_bool(gcc, kGConfTransparency,
                hildon_check_button_get_active(accu_check), NULL);
+       scaler_num = hildon_picker_button_get_active(scaler_picker);
+       gconf_client_set_int(gcc, kGConfSpeedhacks,
+               hildon_picker_button_get_active(speedhacks_picker), NULL);
 #else
-       gconf_client_set_bool(gcc, kGConfXSP,
-               gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(xsp_check)), NULL);
+       scaler_num = gtk_combo_box_get_active(scaler_combo);
 #endif
+       if (scaler_num < 0) scaler_num = 0;
+       gconf_client_set_string(gcc, kGConfScaler, scalers[scaler_num].id, NULL);
 }
 
 static void cb_dialog_response(GtkWidget * button, gint response, gpointer data)
@@ -133,13 +144,19 @@ static void cb_dialog_response(GtkWidget * button, gint response, gpointer data)
 }
 
 #if MAEMO_VERSION >= 5
-static void set_button_layout(HildonButton* button, GtkSizeGroup* sizegroup)
+static void controls_btn_callback(GtkWidget * button, gpointer data)
+{
+       controls_dialog(GTK_WINDOW(dialog));
+}
+
+static void set_button_layout(HildonButton* button,
+ GtkSizeGroup* titles_size_group, GtkSizeGroup* values_size_group)
 {
-       hildon_button_add_title_size_group(button, sizegroup);
-       hildon_button_add_value_size_group(button, sizegroup);
+       hildon_button_add_title_size_group(button, titles_size_group);
+       hildon_button_add_value_size_group(button, values_size_group);
        hildon_button_set_alignment(button, 0.0, 0.5, 1.0, 0.0);
-       hildon_button_set_title_alignment(button, 0.0, 0.5);
-       hildon_button_set_value_alignment(button, 0.0, 0.5);
+       /*hildon_button_set_title_alignment(button, 0.0, 0.5);
+       hildon_button_set_value_alignment(button, 0.0, 0.5);*/
 }
 #endif
 
@@ -151,7 +168,13 @@ void settings_dialog(GtkWindow* parent)
                GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, NULL));
 
 #if MAEMO_VERSION >= 5
-       GtkSizeGroup * size_group = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
+       GtkBox * box = GTK_BOX(gtk_vbox_new(FALSE, HILDON_MARGIN_HALF));
+       HildonPannableArea * pannable =
+               HILDON_PANNABLE_AREA(hildon_pannable_area_new());
+       GtkSizeGroup * titles_size_group =
+                gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
+       GtkSizeGroup * values_size_group =
+                gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
        PangoAttrList *pattrlist = pango_attr_list_new();
        PangoAttribute *attr = pango_attr_size_new(22 * PANGO_SCALE);
        attr->start_index = 0;
@@ -162,37 +185,70 @@ void settings_dialog(GtkWindow* parent)
        gtk_label_set_attributes(separator_1, pattrlist);
        gtk_label_set_justify(separator_1, GTK_JUSTIFY_CENTER);
 
+       player1_btn = HILDON_BUTTON(hildon_button_new_with_text(
+               HILDON_SIZE_AUTO_WIDTH | HILDON_SIZE_FINGER_HEIGHT,
+               HILDON_BUTTON_ARRANGEMENT_HORIZONTAL,
+               _("Player 1"), _("Keyboard")));
+       set_button_layout(HILDON_BUTTON(player1_btn),
+               titles_size_group, values_size_group);
+       g_signal_connect(G_OBJECT(player1_btn), "clicked",
+                                       G_CALLBACK(controls_btn_callback), GINT_TO_POINTER(1));
+
        GtkLabel* separator_2 = GTK_LABEL(gtk_label_new(_("Advanced")));
        gtk_label_set_attributes(separator_2, pattrlist);
        gtk_label_set_justify(separator_2, GTK_JUSTIFY_CENTER);
 
        accu_check = HILDON_CHECK_BUTTON(hildon_check_button_new(
-               HILDON_SIZE_FULLSCREEN_WIDTH | HILDON_SIZE_FINGER_HEIGHT));
+               HILDON_SIZE_AUTO_WIDTH | HILDON_SIZE_FINGER_HEIGHT));
        gtk_button_set_label(GTK_BUTTON(accu_check), _("Accurate graphics"));
-       set_button_layout(HILDON_BUTTON(accu_check), size_group);
+       set_button_layout(HILDON_BUTTON(accu_check),
+               titles_size_group, values_size_group);
 
        scaler_picker = HILDON_PICKER_BUTTON(hildon_picker_button_new(
-               HILDON_SIZE_FULLSCREEN_WIDTH | HILDON_SIZE_FINGER_HEIGHT,
-               HILDON_BUTTON_ARRANGEMENT_VERTICAL));
+               HILDON_SIZE_AUTO_WIDTH | HILDON_SIZE_FINGER_HEIGHT,
+               HILDON_BUTTON_ARRANGEMENT_HORIZONTAL));
        hildon_button_set_title(HILDON_BUTTON(scaler_picker), _("Zoom"));
-       set_button_layout(HILDON_BUTTON(scaler_picker), size_group);
+       set_button_layout(HILDON_BUTTON(scaler_picker),
+               titles_size_group, values_size_group);
 
        HildonTouchSelector* scaler_sel =
                HILDON_TOUCH_SELECTOR(hildon_touch_selector_new_text());
        fill_scaler_list(GTK_WIDGET(scaler_sel));
        hildon_picker_button_set_selector(scaler_picker, scaler_sel);
 
-       gtk_box_pack_start(GTK_BOX(dialog->vbox), GTK_WIDGET(separator_1),
-               FALSE, FALSE, HILDON_MARGIN_DEFAULT);
-       gtk_box_pack_start(GTK_BOX(dialog->vbox), GTK_WIDGET(separator_2),
-               FALSE, FALSE, HILDON_MARGIN_DEFAULT);
-       gtk_box_pack_start(GTK_BOX(dialog->vbox), GTK_WIDGET(accu_check),
+       speedhacks_picker = HILDON_PICKER_BUTTON(hildon_picker_button_new(
+               HILDON_SIZE_AUTO_WIDTH | HILDON_SIZE_FINGER_HEIGHT,
+               HILDON_BUTTON_ARRANGEMENT_HORIZONTAL));
+       hildon_button_set_title(HILDON_BUTTON(speedhacks_picker), _("Speedhacks"));
+       set_button_layout(HILDON_BUTTON(speedhacks_picker),
+               titles_size_group, values_size_group);
+
+       HildonTouchSelector* speedhacks_sel =
+               HILDON_TOUCH_SELECTOR(hildon_touch_selector_new_text());
+       hildon_touch_selector_append_text(speedhacks_sel, _("No speedhacks"));
+       hildon_touch_selector_append_text(speedhacks_sel, _("Safe hacks only"));
+       hildon_touch_selector_append_text(speedhacks_sel, _("All speedhacks"));
+       hildon_picker_button_set_selector(speedhacks_picker, speedhacks_sel);
+
+       gtk_box_pack_start(box, GTK_WIDGET(separator_1),
+               FALSE, FALSE, HILDON_MARGIN_HALF);
+       gtk_box_pack_start(box, GTK_WIDGET(player1_btn),
+               FALSE, FALSE, 0);
+       gtk_box_pack_start(box, GTK_WIDGET(separator_2),
+               FALSE, FALSE, HILDON_MARGIN_HALF);
+       gtk_box_pack_start(box, GTK_WIDGET(accu_check),
                FALSE, FALSE, 0);
-       gtk_box_pack_start(GTK_BOX(dialog->vbox), GTK_WIDGET(scaler_picker),
+       gtk_box_pack_start(box, GTK_WIDGET(scaler_picker),
                FALSE, FALSE, 0);
+       gtk_box_pack_start(box, GTK_WIDGET(speedhacks_picker),
+               FALSE, FALSE, 0);
+
+       hildon_pannable_area_add_with_viewport(pannable, GTK_WIDGET(box));
+       gtk_box_pack_start_defaults(GTK_BOX(dialog->vbox), GTK_WIDGET(pannable));
 
        pango_attr_list_unref(pattrlist);
-       g_object_unref(size_group);
+       g_object_unref(titles_size_group);
+       g_object_unref(values_size_group);
 #else
        xsp_check = GTK_CHECK_BUTTON(gtk_check_button_new());
        GtkWidget* xsp_caption = hildon_caption_new(NULL, 
@@ -204,7 +260,7 @@ void settings_dialog(GtkWindow* parent)
        load_settings();
 
 #if MAEMO_VERSION >= 5
-       gtk_window_resize(GTK_WINDOW(dialog), 800, 300);
+       gtk_window_resize(GTK_WINDOW(dialog), 800, 350);
 #else
        gtk_window_resize(GTK_WINDOW(dialog), 400, 200);
 #endif