GConfValue *value = NULL;
gint id = priv->view;
gchar * str = NULL;
-
+
+ fprintf(stderr,"read_config\n");
gconf_client = gconf_client_get_default();
if (!gconf_client) {
fprintf(stderr, _("Failed to initialize GConf. Quitting.\n"));
gconf_value_free(value);
} else
priv->rich_animation = TRUE;
+
+ str = g_strdup_printf("%s%i", GCONF_KEY_ENABLE, id);
+ value = gconf_client_get(gconf_client, str, NULL);
+ if (str){
+ g_free(str);
+ str = NULL;
+ }
+ if (value) {
+ priv->enable = gconf_value_get_bool(value);
+ gconf_value_free(value);
+ } else
+ priv->enable = FALSE;
+
return 0;
}
save_config(Animation_WallpaperPrivate *priv) {
GConfClient *gconf_client;
+ gchar * str = NULL;
+ gint id = priv->view;
+
gconf_client = gconf_client_get_default();
if (!gconf_client) {
fprintf(stderr, _("Failed to initialize GConf. Quitting.\n"));
return;
}
- /* Save Weather source name. */
- if (priv->theme)
+
+ if (priv->theme){
+ str = g_strdup_printf("%s%i", GCONF_KEY_THEME, id);
gconf_client_set_string(gconf_client,
- GCONF_KEY_THEME,
+ str,
priv->theme, NULL);
+ if (str){
+ g_free(str);
+ str = NULL;
+ }
+ }
+
+ str = g_strdup_printf("%s%i", GCONF_KEY_RANIMATION, id);
if (priv->rich_animation)
gconf_client_set_bool(gconf_client,
- GCONF_KEY_RANIMATION, TRUE, NULL);
+ str, TRUE, NULL);
+ else
+ gconf_client_set_bool(gconf_client,
+ str, FALSE, NULL);
+ if (str){
+ g_free(str);
+ str = NULL;
+ }
+
+ str = g_strdup_printf("%s%i", GCONF_KEY_ENABLE, id);
+ if (priv->enable)
+ gconf_client_set_bool(gconf_client,
+ str, TRUE, NULL);
else
gconf_client_set_bool(gconf_client,
- GCONF_KEY_RANIMATION, FALSE, NULL);
+ str, FALSE, NULL);
+ if (str){
+ g_free(str);
+ str = NULL;
+ }
}
}
/*******************************************************************************/
GtkWidget *
-create_theme_selector (void)
-{
+create_theme_selector (void){
GtkWidget *selector;
selector = hildon_touch_selector_new_text ();
return selector;
}
/*******************************************************************************/
+void
+theme_button_clicked(GtkButton *button, Animation_WallpaperPrivate *priv){
+
+ lw_theme_settings(priv, NULL);
+}
+/********************************************************************************/
+
GtkWidget *
-create_image_button (gchar *theme)
-{
+create_image_button (gchar *theme, gint view){
GtkWidget *button;
GtkWidget *image;
gchar * str;
GdkPixbuf * pixbuf;
+ fprintf(stderr,"create_image_button\n");
+ Animation_WallpaperPrivate *priv = g_new0(Animation_WallpaperPrivate, 1);
+ priv->view = view;
+ read_config(priv);
button = hildon_button_new(HILDON_SIZE_AUTO_WIDTH | HILDON_SIZE_FINGER_HEIGHT,
HILDON_BUTTON_ARRANGEMENT_VERTICAL);
+ g_object_set_data(G_OBJECT(button), "view", GINT_TO_POINTER(view));
str = g_strdup_printf( "%s/%s/%s", THEME_PATH,
theme, "icon.png");
pixbuf = gdk_pixbuf_new_from_file_at_size (str,
image = gtk_image_new_from_pixbuf (pixbuf);
g_object_unref(G_OBJECT(pixbuf));
}
+
hildon_button_set_image (HILDON_BUTTON (button), image);
+ g_signal_connect(button, "clicked", G_CALLBACK(theme_button_clicked), priv);
//hildon_button_set_image_position (HILDON_BUTTON (button), GTK_POS_RIGHT);
return button;
GtkWidget *theme_button4;
GtkWidget *hbox;
+ fprintf(stderr,"lw_main_settings\n");
window = gtk_dialog_new();
gtk_window_set_title(GTK_WINDOW(window), _("Live Wallpaper Settings"));
gtk_window_set_modal(GTK_WINDOW(window), TRUE);
/* Create Theme button */
hbox = gtk_hbox_new(FALSE, 5);
- theme_button1 = create_image_button("Matrix");
+ theme_button1 = create_image_button("Matrix", 0);
gtk_box_pack_start(GTK_BOX(hbox),
theme_button1, TRUE, TRUE, 5);
- theme_button2 = create_image_button("Matrix");
+ theme_button2 = create_image_button("Matrix", 1);
gtk_box_pack_start(GTK_BOX(hbox),
theme_button2, TRUE, TRUE, 5);
- theme_button3 = create_image_button("Matrix");
+ theme_button3 = create_image_button("Matrix", 2);
gtk_box_pack_start(GTK_BOX(hbox),
theme_button3, TRUE, TRUE, 5);
- theme_button4 = create_image_button("Matrix");
+ theme_button4 = create_image_button("Matrix", 3);
gtk_box_pack_start(GTK_BOX(hbox),
theme_button4, TRUE, TRUE, 5);
gtk_box_pack_start(GTK_BOX(GTK_DIALOG(window)->vbox),
/*******************************************************************************/
void
-lw_theme_settings(Animation_WallpaperPrivate *priv, gpointer data){
+lw_theme_settings(Animation_WallpaperPrivate *priv, gpointer data){
gint result;
GtkWidget *window = NULL;
GtkWidget *save_button;
GtkWidget *theme_button;
GtkWidget *enable_button;
GtkWidget *rich_animation_button;
+ gint view = priv->view;
+ fprintf(stderr,"lw_theme_settings\n");
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 Enable button */
- enable_button = create_enable_button(check_applet_state(0));
+ enable_button = create_enable_button(check_applet_state(view));
gtk_box_pack_start(GTK_BOX(GTK_DIALOG(window)->vbox),
enable_button, TRUE, TRUE, 5);
/* Create Theme button */
save_config(priv);
/* action with applet */
if (hildon_check_button_get_active (HILDON_CHECK_BUTTON(enable_button))){
- if (!check_applet_state(0))
- start_applet(0);
+ if (!check_applet_state(view))
+ start_applet(view);
else
send_dbus_signal (priv,
LIVEWP_SIGNAL_INTERFACE,
LIVEWP_SIGNAL_PATH,
LIVEWP_RELOAD_CONFIG);
}else
- if (check_applet_state(0))
- stop_applet();
+ if (check_applet_state(view))
+ stop_applet(view);
break;
default:
GKeyFile *gkey_file = NULL;
gchar *str = NULL;
gboolean result = FALSE;
-
+fprintf(stderr,"check_applet_state\n");
if (number > 3 || number < 0)
- return;
+ return FALSE;
str = g_strdup_printf("livewp-home-widget.desktop-%i",number);
config_file = hd_config_file_new(NULL, "/home/user/.config/hildon-desktop/", "home.plugins");
}
/*******************************************************************************/
void
-stop_applet(void){
+stop_applet(gint number){
FILE *file_in;
FILE *file_out;
gchar buffer[2048];
+ gchar * str = NULL;
file_in = fopen("/home/user/.config/hildon-desktop/home.plugins","r");
file_out = fopen("/tmp/livewallpaper.plugins","w");
while (!feof(file_in)) {
memset(buffer, 0, sizeof(buffer));
fgets(buffer, sizeof(buffer) - 1, file_in);
- if (strcmp(buffer, "[livewp-home-widget.desktop-0]\n") &&
+ str = g_strdup_printf("[livewp-home-widget.desktop-%i]\n", number);
+ if (strcmp(buffer, str) &&
strcmp(buffer, "X-Desktop-File=/usr/share/applications/hildon-home/livewp-home-widget.desktop\n"))
fputs(buffer, file_out);
}
+ if (str){
+ g_free(str);
+ }
fclose(file_out);
fclose(file_in);
file_in = fopen("/tmp/livewallpaper.plugins","r");