updated translation
[livewp] / applet / src / livewp-settings.c
index 624da8b..b2076e8 100644 (file)
@@ -25,7 +25,8 @@
 #include "livewp-settings.h"
 /*******************************************************************************/
 void lw_about(void){
-
+    
+    gchar *about_string;
     GtkWidget *window = NULL,
     *vbox = NULL,
     *label_about = NULL;
@@ -34,16 +35,18 @@ void lw_about(void){
     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 Version 0.9 \n Copyright(c) 2010\n \
+    about_string = g_strdup_printf(_("Live Wallpaper Version %s \n Copyright(c) 2010\n \
 Tanya Makova\n Vlad Vasiliev\n \
 Copyright(c) 2010 for design themes Berlin, Modern and Accel Vasya Bobrikov\n \
-Copyright(c) 2010 for design theme Matrix and icons Andrew Zhilin\n \
+Copyright(c) 2010 for design themes Matrix Fifteen and for icons Andrew Zhilin\n \
 Translators:\n \
 Finnish - Marko Vertainen\n \
 Spain  - Alejandro López\n \
 Italian  - Emanuele Cassioli\n \
 Russian - Tanya Makova \n \
-          Vlad Vasiliev\n")); 
+          Vlad Vasiliev\n"), VERSION);
+
+    label_about = gtk_label_new (about_string);
     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);
@@ -190,6 +193,14 @@ create_image_button (gint view, DBusConnection *conn_sess){
 }
 /********************************************************************************/
 void
+changed_value_one_in_all_cb (GtkWidget *toggle, Animation_WallpaperPrivate *priv)
+{
+    priv->one_in_all_view = hildon_check_button_get_active((HildonCheckButton *)toggle);
+    create_themes_buttons_hbox(priv);
+    fprintf(stderr, "changed_value_one_in_all_cb\n");
+}
+/********************************************************************************/
+void
 changed_value_theme_cb (HildonPickerButton *picker, Animation_WallpaperPrivate *priv)
 {
     const gchar *choice = hildon_button_get_value(HILDON_BUTTON (picker));
@@ -404,7 +415,7 @@ GtkWidget *
 create_bool_button (gboolean active, gchar *name)
 {
     GtkWidget *button;
-    button = hildon_check_button_new (HILDON_SIZE_AUTO);
+    button = hildon_check_button_new (HILDON_SIZE_FINGER_HEIGHT);
     gtk_button_set_label (GTK_BUTTON (button), name);
     hildon_check_button_set_active(HILDON_CHECK_BUTTON(button), active);
     return button;
@@ -426,49 +437,82 @@ show_settings(GtkWidget *widget, Animation_WallpaperPrivate *priv){
     lw_main_settings(priv, NULL);
 }
 /*******************************************************************************/
-void 
-lw_main_settings(Animation_WallpaperPrivate *priv, gpointer data){
-    gint result;
-    GtkWidget *window = NULL;
+void
+create_themes_buttons_hbox(Animation_WallpaperPrivate *priv){
+    GtkWidget *hbox = NULL;
+    GtkWidget *area_hbox = NULL;
     GtkWidget *theme_button1;
     GtkWidget *theme_button2;
     GtkWidget *theme_button3;
-    GtkWidget *theme_button4;
-    GtkWidget *hbox;
-    Animation_WallpaperPrivate *priv_temp = NULL;
+    GtkWidget *theme_button4;    
 
-    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 */
+        
+    area_hbox = g_object_get_data(G_OBJECT(priv->window), "area_hbox");
+    if (!area_hbox)
+        return;
+    hbox = g_object_get_data(G_OBJECT(priv->window), "custom_hbox");
+    if (hbox){
+        gtk_widget_destroy(hbox);
+    }
     hbox = gtk_hbox_new(FALSE, 0);
+    g_object_set_data(G_OBJECT(priv->window), "custom_hbox", hbox);
+    gtk_box_pack_start(GTK_BOX(area_hbox),
+                                   hbox, FALSE, FALSE, 5);
+    /* Create Theme buttons */
     theme_button1 = create_image_button(1, priv->dbus_conn_session);
     gtk_box_pack_start(GTK_BOX(hbox),
                                    theme_button1, TRUE, TRUE, 0);
+    gtk_widget_show (theme_button1);
+    gtk_widget_show (hbox);
+    if (priv->one_in_all_view)
+        return;
     theme_button2 = create_image_button(2, priv->dbus_conn_session);
     gtk_box_pack_start(GTK_BOX(hbox),
                                    theme_button2, TRUE, TRUE, 0);
+    gtk_widget_show (theme_button2);
     theme_button3 = create_image_button(3, priv->dbus_conn_session);
     gtk_box_pack_start(GTK_BOX(hbox),
                                    theme_button3, TRUE, TRUE, 0);
+    gtk_widget_show (theme_button3);
     theme_button4 = create_image_button(4, priv->dbus_conn_session);
     gtk_box_pack_start(GTK_BOX(hbox),
                                    theme_button4, TRUE, TRUE, 0);
+    gtk_widget_show (theme_button4);
+}
+/*******************************************************************************/
+void 
+lw_main_settings(Animation_WallpaperPrivate *priv, gpointer data){
+    gint result;
+    GtkWidget *window = NULL;
+    GtkWidget *area_hbox;
+    GtkWidget *one_in_all_view_button; 
+    gboolean one_in_all_view;
+    Animation_WallpaperPrivate *priv_temp = NULL;
+
+    window = gtk_dialog_new();
+    priv->window = window;
+
+    one_in_all_view = priv->one_in_all_view;
+    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);
+    one_in_all_view_button = create_bool_button(priv->one_in_all_view, _("One theme in all views"));
+    g_signal_connect (G_OBJECT (one_in_all_view_button), "toggled",  G_CALLBACK (changed_value_one_in_all_cb), priv);
+    gtk_box_pack_start(GTK_BOX(GTK_DIALOG(window)->vbox), one_in_all_view_button, TRUE, TRUE, 5);
+    area_hbox = gtk_vbox_new(FALSE, 2);
+    g_object_set_data(G_OBJECT(window), "area_hbox", area_hbox);
+    create_themes_buttons_hbox(priv);
     gtk_box_pack_start(GTK_BOX(GTK_DIALOG(window)->vbox),
-                                   hbox, TRUE, TRUE, 5);
+                                   area_hbox, TRUE, TRUE, 0);
 
-    gtk_widget_show (theme_button1);
-    gtk_widget_show (theme_button2);
-    gtk_widget_show (theme_button3);
-    gtk_widget_show (theme_button4);
-    gtk_widget_show_all (hbox);
+    gtk_widget_show (one_in_all_view_button);
+    gtk_widget_show_all (area_hbox);
     gtk_widget_show (window);
     gtk_dialog_add_button(GTK_DIALOG(window), _("About"), GTK_RESPONSE_NO);
 
     result = gtk_dialog_run(GTK_DIALOG(window));
-
+/*
     priv_temp = g_object_get_data(G_OBJECT(theme_button1), "priv");
     if (priv_temp){
         g_free(priv_temp);
@@ -489,7 +533,7 @@ lw_main_settings(Animation_WallpaperPrivate *priv, gpointer data){
         g_free(priv_temp);
         priv_temp =NULL;
     }
-
+*/
 
     switch(result){
         case GTK_RESPONSE_NO:
@@ -499,7 +543,20 @@ lw_main_settings(Animation_WallpaperPrivate *priv, gpointer data){
         break;
     }
 
-
+    if (hildon_check_button_get_active (HILDON_CHECK_BUTTON(one_in_all_view_button)) != one_in_all_view){
+        save_one_in_all_views_to_config(hildon_check_button_get_active (HILDON_CHECK_BUTTON(one_in_all_view_button)));
+        fprintf(stderr,"CHECK!!!!!!!!!!!!!!\n");
+        stop_applet(1);
+        stop_applet(2);
+        stop_applet(3);
+        stop_applet(4);
+        sleep(7);
+        start_applet(1);
+        start_applet(2);
+        start_applet(3);
+        start_applet(4);
+        
+    }
     if (window)
         gtk_widget_destroy(window);
 }
@@ -687,6 +744,14 @@ lw_theme_settings(GtkWidget *button, Animation_WallpaperPrivate *priv) {
                         break;
                     }
                 }
+                /* Check Colorflood program */
+                if (!strcmp(hildon_button_get_value(HILDON_BUTTON (theme_button)), "Colorflood")){
+                    if (access("/usr/bin/colorflood", F_OK) != 0){
+                        show_problem_package(button,"'Colorflood'");
+                        /* if not scuccess exit from wthout saving */ 
+                        break;
+                    }
+                }
 
                 if (priv->theme)
                     g_free(priv->theme);