next step for categories
authorvlad <vlad@vlanout.(none)>
Thu, 12 Aug 2010 18:49:36 +0000 (21:49 +0300)
committervlad <vlad@vlanout.(none)>
Thu, 12 Aug 2010 18:49:36 +0000 (21:49 +0300)
applet/src/livewp-settings.c
applet/src/livewp-settings.h

index bb14a81..14deb4a 100644 (file)
@@ -210,31 +210,30 @@ changed_value_category_cb (HildonPickerButton *picker, Animation_WallpaperPrivat
     HildonTouchSelector * selector =  hildon_picker_button_get_selector((HildonPickerButton *) theme_button);
     hildon_touch_selector_remove_column(selector, 0); 
     hildon_touch_selector_append_text_column(selector, gtk_list_store_new (1, G_TYPE_STRING), TRUE);
-    fill_theme_button(priv, theme_button);
+    fill_theme_button(priv, theme_button, hildon_button_get_value(HILDON_BUTTON (picker)));
 }
 /********************************************************************************/
 void
-fill_theme_button (Animation_WallpaperPrivate *priv, GtkWidget *button){
+fill_theme_button (Animation_WallpaperPrivate *priv, GtkWidget *button, gchar *category){
 
     gchar *theme = priv->theme;
     gint num=0;
+    if (!category)
+        return;
     GSList *store = priv->extheme_list;
     HildonTouchSelector * selector =  hildon_picker_button_get_selector((HildonPickerButton *) button);
     if (!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"));
-    hildon_touch_selector_append_text (HILDON_TOUCH_SELECTOR (selector), _("Accel"));
-    hildon_touch_selector_append_text (HILDON_TOUCH_SELECTOR (selector), _("Video"));
-    fprintf(stderr, "append texx in selector\n");
-    while (store){  
-        hildon_touch_selector_append_text (HILDON_TOUCH_SELECTOR (selector), g_hash_table_lookup(store->data, "name"));
-        store = g_slist_next(store);
+    
+    if (!strcmp(category, "LiveWallpaper")){
+        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"));
+        hildon_touch_selector_append_text (HILDON_TOUCH_SELECTOR (selector), _("Accel"));
+        hildon_touch_selector_append_text (HILDON_TOUCH_SELECTOR (selector), _("Video"));
+        num = 5;        
     }
-
-    if (theme) {
+    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"));
@@ -255,30 +254,34 @@ fill_theme_button (Animation_WallpaperPrivate *priv, GtkWidget *button){
             hildon_touch_selector_set_active (HILDON_TOUCH_SELECTOR (selector), 0, 4);
             hildon_button_set_value(HILDON_BUTTON(button), _("Video"));
         }
-        num = 5;
-        GSList *store = priv->extheme_list;
-        while (store){
+
+    while (store){  
+        if (!g_hash_table_lookup(store->data, "category"))
+            continue;
+        if (!strcmp(g_hash_table_lookup(store->data, "category"), category)){
+            hildon_touch_selector_append_text (HILDON_TOUCH_SELECTOR (selector), g_hash_table_lookup(store->data, "name"));
             if (!strcmp(theme, g_hash_table_lookup(store->data, "name"))){
                 hildon_touch_selector_set_active (HILDON_TOUCH_SELECTOR (selector), 0, num);
                 hildon_button_set_value(HILDON_BUTTON(button), _(g_hash_table_lookup(store->data, "name")));
-                break;
             }
             num++;
-            store = g_slist_next(store);
         }
+        store = g_slist_next(store);
     }
+
+       
     hildon_picker_button_set_selector (HILDON_PICKER_BUTTON (button),
                                                        HILDON_TOUCH_SELECTOR (selector));
 
 }
 /********************************************************************************/
 GtkWidget *
-create_themes_button (Animation_WallpaperPrivate *priv){
+create_themes_button (Animation_WallpaperPrivate *priv, gchar *category){
 
     GtkWidget *button;
     button = hildon_picker_button_new (HILDON_SIZE_AUTO, HILDON_BUTTON_ARRANGEMENT_VERTICAL);
     hildon_button_set_title (HILDON_BUTTON (button), _("Theme"));
-        fill_theme_button(priv, button);
+    fill_theme_button(priv, button, category);
 
    
     return button;
@@ -522,12 +525,13 @@ lw_theme_settings(GtkWidget *button, Animation_WallpaperPrivate *priv) {
                                    enable_button, TRUE, TRUE, 5);
     /* Create Category button */
     category_button = create_categories_button(priv);
+    g_object_set_data(G_OBJECT(window), "category_button", category_button);
     g_signal_connect (G_OBJECT (category_button), "value-changed",  G_CALLBACK (changed_value_category_cb), priv);
     gtk_box_pack_start(GTK_BOX(GTK_DIALOG(window)->vbox),
                                    category_button, TRUE, TRUE, 5);
 
     /* Create Theme button */
-    theme_button = create_themes_button(priv);
+    theme_button = create_themes_button(priv,hildon_button_get_value(HILDON_BUTTON (category_button)));
     g_object_set_data(G_OBJECT(window), "theme_button", theme_button);
     g_signal_connect (G_OBJECT (theme_button), "value-changed",  G_CALLBACK (changed_value_theme_cb), priv);
     gtk_box_pack_start(GTK_BOX(GTK_DIALOG(window)->vbox),
index 239ac80..2f92c46 100644 (file)
@@ -26,7 +26,7 @@
 
 #include <hildon-fm-2/hildon/hildon-file-chooser-dialog.h>
 #include <unistd.h>
-void fill_theme_button (Animation_WallpaperPrivate *priv, GtkWidget *button);
+void fill_theme_button (Animation_WallpaperPrivate *priv, GtkWidget *button, gchar *category);
 void lw_main_settings(Animation_WallpaperPrivate *priv, gpointer data);
 void save_config(Animation_WallpaperPrivate *priv);
 gboolean check_applet_state(gint number);