added number of desktop to check function
authorVlad <vlad@gas.by>
Mon, 19 Jul 2010 05:18:43 +0000 (08:18 +0300)
committerVlad <vlad@gas.by>
Mon, 19 Jul 2010 05:18:43 +0000 (08:18 +0300)
applet/src/livewp-settings.c
applet/src/livewp-settings.h

index 3f0c7b2..109af6b 100644 (file)
@@ -219,7 +219,7 @@ lw_theme_settings(Animation_WallpaperPrivate *priv, gpointer data){
     gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
     gtk_window_set_modal(GTK_WINDOW(window), TRUE);
     /* Create Enable button */
-    enable_button = create_enable_button(check_applet_state()); 
+    enable_button = create_enable_button(check_applet_state(0)); 
     gtk_box_pack_start(GTK_BOX(GTK_DIALOG(window)->vbox),
                                    enable_button, TRUE, TRUE, 5);
     /* Create Theme button */
@@ -261,15 +261,15 @@ lw_theme_settings(Animation_WallpaperPrivate *priv, gpointer data){
             save_config(priv);
             /* action with applet */
             if (hildon_check_button_get_active (HILDON_CHECK_BUTTON(enable_button))){
-                    if (!check_applet_state())
-                        start_applet();
+                    if (!check_applet_state(0))
+                        start_applet(0);
                     else
                         send_dbus_signal (priv,
                               LIVEWP_SIGNAL_INTERFACE,
                               LIVEWP_SIGNAL_PATH,
                               LIVEWP_RELOAD_CONFIG);
             }else
-                    if (check_applet_state())
+                    if (check_applet_state(0))
                         stop_applet();
 
             break;
@@ -287,10 +287,28 @@ lw_theme_settings(Animation_WallpaperPrivate *priv, gpointer data){
 }
 /*******************************************************************************/
 gboolean
-check_applet_state(void){
+check_applet_state(gint number){
+
+    HDConfigFile *config_file = NULL;
+    GKeyFile *gkey_file = NULL;
+    gchar *str = NULL;
+    gboolean result = FALSE;
+
+    if (number > 3 || number < 0)
+        return;
+
+    str = g_strdup_printf("livewp-home-widget.desktop-%i",number);
+    config_file = hd_config_file_new(NULL, "/home/user/.config/hildon-desktop/", "home.plugins");
+    
+    gkey_file = hd_config_file_load_file(config_file, FALSE);
+    if (gkey_file && str){
+        result = g_key_file_has_group(gkey_file, str);
+        g_free(str);
+    }
+    return result;
+#if 0
     FILE    *file_in = NULL;
     gchar buffer[2048];
-    gboolean result = FALSE;
 
     file_in = fopen("/home/user/.config/hildon-desktop/home.plugins","r");
     if (file_in){
@@ -307,24 +325,30 @@ check_applet_state(void){
        }
         fclose(file_in);
     }
-    return result;
+#endif
 }
 /*******************************************************************************/
 void
-start_applet(void){
+start_applet(gint number){
 
     HDConfigFile *config_file = NULL;
     GKeyFile *gkey_file = NULL;
+    gchar *str = NULL;
 
+    if (number > 3 || number < 0)
+        return;
+    str = g_strdup_printf("livewp-home-widget.desktop-%i",number);
     config_file = hd_config_file_new(NULL, "/home/user/.config/hildon-desktop/", "home.plugins");
     
     gkey_file = hd_config_file_load_file(config_file, FALSE);
     if (gkey_file){
-        g_key_file_set_string (gkey_file, "livewp-home-widget.desktop-0", "X-Desktop-File", "/usr/share/applications/hildon-home/livewp-home-widget.desktop");
+        g_key_file_set_string (gkey_file, str, "X-Desktop-File", "/usr/share/applications/hildon-home/livewp-home-widget.desktop");
         hd_config_file_save_file( config_file, gkey_file);
         g_key_file_free(gkey_file);
     }else
         fprintf(stderr, "Problem with config file");
+    if (str)
+        g_free(str);
     g_object_unref(config_file);
 }
 /*******************************************************************************/
index 5033096..34b3920 100644 (file)
 #include <unistd.h>
 void lw_main_settings(Animation_WallpaperPrivate *priv, gpointer data);
 void save_config(Animation_WallpaperPrivate *priv);
-gboolean check_applet_state(void);
+gboolean check_applet_state(gint number);
 void reload_scene(AWallpaperPlugin *desktop_plugin);
 GtkWidget* create_settings(void);
 void show_settings(GtkWidget *widget, Animation_WallpaperPrivate *priv);
-void start_applet(void);
+void start_applet(gint number);
 void stop_applet(void);
 void send_dbus_signal (Animation_WallpaperPrivate *priv, const gchar *interface,
                   const gchar *path, const gchar *member);