l10n: Updates to Swedish (sv) translation
[drnoksnes] / gui / controls.c
index 8a935cf..17ebbbc 100644 (file)
@@ -47,8 +47,13 @@ static HildonCheckButton* keys_chk;
 static HildonButton* keys_btn;
 static HildonCheckButton* touch_chk;
 static HildonCheckButton* touch_show_chk;
+static HildonCheckButton* zeemote_chk;
 #else
-
+static GtkCheckButton* keys_chk;
+static GtkButton* keys_btn;
+static GtkCheckButton* touch_chk;
+static GtkCheckButton* touch_show_chk;
+static GtkCheckButton* zeemote_chk;
 #endif
 
 static void load_settings()
@@ -58,10 +63,41 @@ static void load_settings()
        gchar *key = key_base + key_len;
 
 #if MAEMO_VERSION >= 5
+       // Keyboard
        strcpy(key, kGConfPlayerKeyboardEnable);
        hildon_check_button_set_active(keys_chk,
                gconf_client_get_bool(gcc, key_base, NULL));
+
+       // Touchscreen
+       strcpy(key, kGConfPlayerTouchscreenEnable);
+       hildon_check_button_set_active(touch_chk,
+               gconf_client_get_bool(gcc, key_base, NULL));
+       strcpy(key, kGConfPlayerTouchscreenShow);
+       hildon_check_button_set_active(touch_show_chk,
+               gconf_client_get_bool(gcc, key_base, NULL));
+
+       // Zeemote
+       strcpy(key, kGConfPlayerZeemoteEnable);
+       hildon_check_button_set_active(zeemote_chk,
+               gconf_client_get_bool(gcc, key_base, NULL));
 #else
+       // Keyboard
+       strcpy(key, kGConfPlayerKeyboardEnable);
+       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(keys_chk),
+               gconf_client_get_bool(gcc, key_base, NULL));
+
+       // Touchscreen
+       strcpy(key, kGConfPlayerTouchscreenEnable);
+       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(touch_chk),
+               gconf_client_get_bool(gcc, key_base, NULL));
+       strcpy(key, kGConfPlayerTouchscreenShow);
+       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(touch_show_chk),
+               gconf_client_get_bool(gcc, key_base, NULL));
+
+       // Zeemote
+       strcpy(key, kGConfPlayerZeemoteEnable);
+       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(zeemote_chk),
+               gconf_client_get_bool(gcc, key_base, NULL));
 #endif
 }
 
@@ -72,10 +108,41 @@ static void save_settings()
        gchar *key = key_base + key_len;
 
 #if MAEMO_VERSION >= 5
+       // Keyboard
        strcpy(key, kGConfPlayerKeyboardEnable);
        gconf_client_set_bool(gcc, key_base,
                hildon_check_button_get_active(keys_chk), NULL);
-#else
+
+       // Touchscreen
+       strcpy(key, kGConfPlayerTouchscreenEnable);
+       gconf_client_set_bool(gcc, key_base,
+               hildon_check_button_get_active(touch_chk), NULL);
+       strcpy(key, kGConfPlayerTouchscreenShow);
+       gconf_client_set_bool(gcc, key_base,
+               hildon_check_button_get_active(touch_show_chk), NULL);
+
+       // Zeemote
+       strcpy(key, kGConfPlayerZeemoteEnable);
+       gconf_client_set_bool(gcc, key_base,
+               hildon_check_button_get_active(zeemote_chk), NULL);
+#else /* MAEMO_VERSION < 5 */
+       // Keyboard
+       strcpy(key, kGConfPlayerKeyboardEnable);
+       gconf_client_set_bool(gcc, key_base,
+               gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(keys_chk)), NULL);
+
+       // Touchscreen
+       strcpy(key, kGConfPlayerTouchscreenEnable);
+       gconf_client_set_bool(gcc, key_base,
+               gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(touch_chk)), NULL);
+       strcpy(key, kGConfPlayerTouchscreenShow);
+       gconf_client_set_bool(gcc, key_base,
+               gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(touch_show_chk)), NULL);
+
+       // Zeemote
+       strcpy(key, kGConfPlayerZeemoteEnable);
+       gconf_client_set_bool(gcc, key_base,
+               gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(zeemote_chk)), NULL);
 #endif
 }
 
@@ -106,7 +173,8 @@ static void set_button_layout(HildonButton* button,
 
 gchar* controls_describe(int player)
 {
-       static gchar description[128];
+       static gchar description[256];
+       unsigned char count = 0;
 
        gchar key_base[kGConfPlayerPathBufferLen];
        const int key_len = sprintf(key_base, kGConfPlayerPath, player);
@@ -117,9 +185,25 @@ gchar* controls_describe(int player)
        strcpy(key, kGConfPlayerKeyboardEnable);
        if (gconf_client_get_bool(gcc, key_base, NULL)) {
                strcpy(description, _("Keyboard"));
+               count++;
+       }
+
+       strcpy(key, kGConfPlayerTouchscreenEnable);
+       if (gconf_client_get_bool(gcc, key_base, NULL)) {
+               if (count > 0) strcat(description, ", ");
+               strcat(description, _("Touchscreen"));
+               count++;
+       }
+
+       strcpy(key, kGConfPlayerZeemoteEnable);
+       if (gconf_client_get_bool(gcc, key_base, NULL)) {
+               if (count > 0) strcat(description, ", ");
+               strcat(description, _("Zeemote"));
+               count++;
        }
 
-       if (description[0] == '\0') {
+       if (count == 0) {
+               /* Add some text if there are no enabled controls */
                strcpy(description, _("Disabled"));
        }
 
@@ -188,6 +272,7 @@ void controls_dialog(GtkWindow* parent, int player)
        set_button_layout(HILDON_BUTTON(touch_show_chk),
                titles_size_group, values_size_group);
 
+#if 0
        GtkLabel* separator_3 = GTK_LABEL(gtk_label_new(_("Accelerometer")));
        gtk_label_set_attributes(separator_3, pattrlist);
        gtk_label_set_justify(separator_3, GTK_JUSTIFY_CENTER);
@@ -195,11 +280,18 @@ void controls_dialog(GtkWindow* parent, int player)
        GtkLabel* separator_4 = GTK_LABEL(gtk_label_new(_("Wiimote")));
        gtk_label_set_attributes(separator_4, pattrlist);
        gtk_label_set_justify(separator_4, GTK_JUSTIFY_CENTER);
-       
+#endif
+
        GtkLabel* separator_5 = GTK_LABEL(gtk_label_new(_("Zeemote")));
        gtk_label_set_attributes(separator_5, pattrlist);
        gtk_label_set_justify(separator_5, GTK_JUSTIFY_CENTER);
 
+       zeemote_chk = HILDON_CHECK_BUTTON(hildon_check_button_new(
+               HILDON_SIZE_AUTO_WIDTH | HILDON_SIZE_FINGER_HEIGHT));
+       gtk_button_set_label(GTK_BUTTON(zeemote_chk), _("Enable Zeemote joystick"));
+       set_button_layout(HILDON_BUTTON(zeemote_chk),
+               titles_size_group, values_size_group);
+
        gtk_box_pack_start(box, GTK_WIDGET(separator_1),
                FALSE, FALSE, HILDON_MARGIN_HALF);
        gtk_box_pack_start(box, GTK_WIDGET(keys_chk),
@@ -212,12 +304,16 @@ void controls_dialog(GtkWindow* parent, int player)
                FALSE, FALSE, 0);
        gtk_box_pack_start(box, GTK_WIDGET(touch_show_chk),
                FALSE, FALSE, 0);
+#if 0
        gtk_box_pack_start(box, GTK_WIDGET(separator_3),
                FALSE, FALSE, HILDON_MARGIN_HALF);
        gtk_box_pack_start(box, GTK_WIDGET(separator_4),
                FALSE, FALSE, HILDON_MARGIN_HALF);
+#endif
        gtk_box_pack_start(box, GTK_WIDGET(separator_5),
                FALSE, FALSE, HILDON_MARGIN_HALF);
+       gtk_box_pack_start(box, GTK_WIDGET(zeemote_chk),
+               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));
@@ -226,6 +322,37 @@ void controls_dialog(GtkWindow* parent, int player)
        g_object_unref(titles_size_group);
        g_object_unref(values_size_group);
 #else
+       GtkBox* keys_box = GTK_BOX(gtk_hbox_new(FALSE, HILDON_MARGIN_DEFAULT));
+
+       keys_chk = GTK_CHECK_BUTTON(gtk_check_button_new_with_label(
+               _("Enable keyboard")));
+       keys_btn = GTK_BUTTON(gtk_button_new_with_label(_("Configure keys…")));
+       g_signal_connect(G_OBJECT(keys_btn), "clicked",
+                                       G_CALLBACK(keys_btn_callback), GINT_TO_POINTER(player));
+
+       gtk_box_pack_start_defaults(keys_box, GTK_WIDGET(keys_chk));
+       gtk_box_pack_start_defaults(keys_box, GTK_WIDGET(keys_btn));
+
+       GtkWidget* sep_1 = GTK_WIDGET(gtk_hseparator_new());
+       GtkBox* touch_box = GTK_BOX(gtk_vbox_new(FALSE, HILDON_MARGIN_HALF));
+
+       touch_chk = GTK_CHECK_BUTTON(gtk_check_button_new_with_label(
+               _("Enable touchscreen buttons")));
+       touch_show_chk = GTK_CHECK_BUTTON(gtk_check_button_new_with_label(
+               _("Show on-screen button grid")));
+
+       gtk_box_pack_start_defaults(touch_box, GTK_WIDGET(touch_chk));
+       gtk_box_pack_start_defaults(touch_box, GTK_WIDGET(touch_show_chk));
+
+       GtkWidget* sep_2 = GTK_WIDGET(gtk_hseparator_new());
+       zeemote_chk = GTK_CHECK_BUTTON(gtk_check_button_new_with_label(
+               _("Enable Zeemote joystick")));
+
+       gtk_box_pack_start_defaults(GTK_BOX(dialog->vbox), GTK_WIDGET(keys_box));
+       gtk_box_pack_start_defaults(GTK_BOX(dialog->vbox), sep_1);
+       gtk_box_pack_start_defaults(GTK_BOX(dialog->vbox), GTK_WIDGET(touch_box));
+       gtk_box_pack_start_defaults(GTK_BOX(dialog->vbox), sep_2);
+       gtk_box_pack_start_defaults(GTK_BOX(dialog->vbox), GTK_WIDGET(zeemote_chk));
 #endif
 
        load_settings();
@@ -233,7 +360,7 @@ void controls_dialog(GtkWindow* parent, int player)
 #if MAEMO_VERSION >= 5
        gtk_window_resize(GTK_WINDOW(dialog), 800, 360);
 #else
-       gtk_window_resize(GTK_WINDOW(dialog), 400, 200);
+       gtk_window_resize(GTK_WINDOW(dialog), 450, 250);
 #endif
 
        g_signal_connect(G_OBJECT(dialog), "response",