added translators
[livewp] / applet / src / livewp-settings.c
index cca9af2..27e3ceb 100644 (file)
 /*******************************************************************************/
 #include "livewp-settings.h"
 /*******************************************************************************/
+void lw_about(void){
 
-void 
-live_wallpaper_settings(GtkWidget *widget, gpointer user_data)
-{
-    gint result;
     GtkWidget *window = NULL,
-              *vbox = NULL,
-              *label_about = NULL;
-
+    *vbox = NULL,
+    *label_about = NULL;
     window = gtk_dialog_new();
-    gtk_window_set_title(GTK_WINDOW(window), _("Live Wallpaper Settings"));
+    gtk_window_set_title(GTK_WINDOW(window), _("About"));
     gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
     gtk_window_set_modal(GTK_WINDOW(window), TRUE);
     vbox = gtk_vbox_new (FALSE, 5);
-    label_about = gtk_label_new (_("Live Wallpaper\n Version 0.1 \n Copyright(c) 2010\n Tany Makova\n Vlad Vasiliev")); 
+    label_about = gtk_label_new (_("Live Wallpaper\n Version 0.5 \n Copyright(c) 2010\n \
+Tanya Makova\n Vlad Vasiliev\n \
+Copyright(c) 2010 for design themes Berlin and Modern Vasya Bobrikov\n \
+Copyright(c) 2010 for design theme Matrix Andrew Zhilin\n \
+Translators:\n \
+Finnish - Marko Vertainen\n \
+Russian - Tanya Makova \n
+          Vlad Vasiliev\n")); 
     gtk_box_pack_start (GTK_BOX (vbox), label_about, FALSE, FALSE, 0);
     gtk_box_pack_start(GTK_BOX(GTK_DIALOG(window)->vbox),
                                    vbox, TRUE, TRUE, 0);
     gtk_widget_show (label_about);
     gtk_widget_show (vbox);
     gtk_widget_show (window);
+    gtk_dialog_run(GTK_DIALOG(window));
+
+}
+/*******************************************************************************/
+GtkWidget *
+create_theme_selector (void)
+{
+      GtkWidget *selector;
+
+      selector = hildon_touch_selector_new_text ();
+
+      hildon_touch_selector_append_text (HILDON_TOUCH_SELECTOR (selector), _("Berlin"));
+      hildon_touch_selector_append_text (HILDON_TOUCH_SELECTOR (selector), _("Modern"));
+      hildon_touch_selector_append_text (HILDON_TOUCH_SELECTOR (selector), _("Matrix"));
+      return selector;
+}
+/*******************************************************************************/
+GtkWidget *
+create_themes_button (gchar *theme){
+
+    GtkWidget *button;
+    GtkWidget *selector;
+
+    selector = create_theme_selector();
+    button = hildon_picker_button_new (HILDON_SIZE_AUTO, HILDON_BUTTON_ARRANGEMENT_VERTICAL);
+    hildon_button_set_title (HILDON_BUTTON (button), _("Theme"));
+    hildon_picker_button_set_selector (HILDON_PICKER_BUTTON (button),
+                                                       HILDON_TOUCH_SELECTOR (selector));
+    if (theme) {
+        if (!strcmp(theme, "Berlin")){
+            hildon_touch_selector_set_active (HILDON_TOUCH_SELECTOR (selector), 0, 0);
+            hildon_button_set_value(HILDON_BUTTON(button), _("Berlin"));
+        }
+        if (!strcmp(theme, "Modern")){
+            hildon_touch_selector_set_active (HILDON_TOUCH_SELECTOR (selector), 0, 1);
+            hildon_button_set_value(HILDON_BUTTON(button), _("Modern"));
+        }
+        if (!strcmp(theme, "Matrix")){
+            hildon_touch_selector_set_active (HILDON_TOUCH_SELECTOR (selector), 0, 2);
+            hildon_button_set_value(HILDON_BUTTON(button), _("Matrix"));
+        }
+
+    }
+    return button;
+}
+
+/*******************************************************************************/
+GtkWidget *
+create_rich_animation_button (gboolean active)
+{
+    GtkWidget *button;
+    button = hildon_check_button_new (HILDON_SIZE_AUTO);
+    gtk_button_set_label (GTK_BUTTON (button), _("Rich Animation"));
+    hildon_check_button_set_active(button, active);
+    return button;
+}
+
+/*******************************************************************************/
+void
+show_settings(GtkWidget *widget, Animation_WallpaperPrivate *priv){
+    lw_settings(priv, NULL);
+}
+/*******************************************************************************/
+void 
+lw_settings(Animation_WallpaperPrivate *priv, gpointer data){
+    gint result;
+    GtkWidget *window = NULL;
+    GtkWidget *save_button;
+    GtkWidget *theme_button;
+    GtkWidget *rich_animation_button;
+
+    window = gtk_dialog_new();
+
+    gtk_window_set_title(GTK_WINDOW(window), _("Live Wallpaper Settings"));
+    gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
+    gtk_window_set_modal(GTK_WINDOW(window), TRUE);
+    /* Create Theme button */
+    theme_button = create_themes_button(priv->theme);
+    gtk_box_pack_start(GTK_BOX(GTK_DIALOG(window)->vbox),
+                                   theme_button, TRUE, TRUE, 5);
+    /* Create rich animation button */  
+    rich_animation_button = create_rich_animation_button(priv->rich_animation);
+    gtk_box_pack_start(GTK_BOX(GTK_DIALOG(window)->vbox),
+                                   rich_animation_button, TRUE, TRUE, 5);
+    gtk_widget_show (theme_button);
+    gtk_widget_show (rich_animation_button);
+    gtk_widget_show (window);
+    gtk_dialog_add_button(GTK_DIALOG(window), _("About"), GTK_RESPONSE_NO);
+    save_button = gtk_dialog_add_button(GTK_DIALOG(window), _("Save"), GTK_RESPONSE_YES);
     result = gtk_dialog_run(GTK_DIALOG(window));
 
-    if (result == GTK_RESPONSE_YES){
-           fprintf(stderr,"Yes\n");
+    switch(result){
+        case GTK_RESPONSE_YES:
+            if (hildon_button_get_value(HILDON_BUTTON (theme_button))){
+                if (priv->theme)
+                    g_free(priv->theme);
+                if (!strcmp(hildon_button_get_value(HILDON_BUTTON (theme_button)), _("Berlin")))
+                    priv->theme = g_strdup("Berlin");
+                if (!strcmp(hildon_button_get_value(HILDON_BUTTON (theme_button)), _("Modern")))
+                    priv->theme = g_strdup("Modern");
+                if (!strcmp(hildon_button_get_value(HILDON_BUTTON (theme_button)), _("Matrix")))
+                    priv->theme = g_strdup("Matrix");
+                if (hildon_check_button_get_active (rich_animation_button))
+                    priv->rich_animation = TRUE;
+                else
+                    priv->rich_animation = FALSE;
+            }
+            save_config(priv);
+            send_dbus_signal (priv,
+                              LIVEWP_SIGNAL_INTERFACE,
+                              LIVEWP_SIGNAL_PATH,
+                              LIVEWP_RELOAD_CONFIG);
+        break;
+        default:
+        case GTK_RESPONSE_OK:
+        break;
+        case GTK_RESPONSE_NO:
+            gtk_widget_destroy(window);
+            window = NULL;
+            lw_about();
+        break;
     }
+    if (window)
+        gtk_widget_destroy(window);
 }
+