/*******************************************************************************/
void
+save_one_in_all_views_to_config(gboolean one_in_all_views){
+ GConfClient *gconf_client;
+
+ gconf_client = gconf_client_get_default();
+ if (!gconf_client) {
+ fprintf(stderr, _("Failed to initialize GConf. Quitting.\n"));
+ return;
+ }
+
+ if (one_in_all_views)
+ gconf_client_set_bool(gconf_client,
+ GCONF_KEY_ONE_IN_ALL_VIEW, TRUE, NULL);
+ else
+ gconf_client_set_bool(gconf_client,
+ GCONF_KEY_ONE_IN_ALL_VIEW, FALSE, NULL);
+
+}
+/*******************************************************************************/
+void
save_config(Animation_WallpaperPrivate *priv) {
GConfClient *gconf_client;
str = NULL;
}
}
- if (priv->one_in_all_view)
- gconf_client_set_bool(gconf_client,
- GCONF_KEY_ONE_IN_ALL_VIEW, TRUE, NULL);
- else
- gconf_client_set_bool(gconf_client,
- GCONF_KEY_ONE_IN_ALL_VIEW, FALSE, NULL);
-
-
}
void fill_priv(Animation_WallpaperPrivate *priv);
gint current_active_view(void);
GSList * get_list_exthemes(void);
+void save_one_in_all_views_to_config(gboolean one_in_all_views);
+
#endif
Animation_WallpaperPrivate* animation_wallpaper_plugin_new (void);
G_END_DECLS
void lw_settings(gpointer user_data, gpointer data);
-gint read_config(Animation_WallpaperPrivate *priv);
-void save_config(Animation_WallpaperPrivate *priv);
//void run_long_timeout(AWallpaperPlugin *desktop_plugin);
void get_sun_screen_pos(double alt, double azm, gint * x, gint * y);
void show_settings(GtkWidget *widget, Animation_WallpaperPrivate *priv);
void
set_live_bg (Display *display, Window xwindow, int mode)
{
- Atom atom;
+ Atom atom;
- atom = XInternAtom (display, "_HILDON_LIVE_DESKTOP_BACKGROUND", False);
- fprintf (stderr, "XID: 0x%x\n", (unsigned)xwindow);
+ atom = XInternAtom (display, "_HILDON_LIVE_DESKTOP_BACKGROUND", False);
+ fprintf (stderr, "XID: 0x%x\n", (unsigned)xwindow);
- XChangeProperty (display,
- xwindow,
- atom,
- XA_INTEGER, 32, PropModeReplace,
- (unsigned char *) &mode, 1);
+ XChangeProperty (display,
+ xwindow,
+ atom,
+ XA_INTEGER, 32, PropModeReplace,
+ (unsigned char *) &mode, 1);
}
/*******************************************************************************/
label = gtk_label_new(_("Loading Livewallpaper scene ..."));
gtk_container_add (GTK_CONTAINER (main_widget), label);
gtk_widget_show_all(GTK_WIDGET(main_widget));
- set_live_bg(GDK_WINDOW_XDISPLAY (main_widget->window), GDK_WINDOW_XID (main_widget->window), priv->view);
+ if (priv->one_in_all_view)
+ set_live_bg(GDK_WINDOW_XDISPLAY (main_widget->window), GDK_WINDOW_XID (main_widget->window), -1);
+ else
+ set_live_bg(GDK_WINDOW_XDISPLAY (main_widget->window), GDK_WINDOW_XID (main_widget->window), priv->view);
}
/*******************************************************************************/
int
priv->running = FALSE;
/* fprintf(stderr,"XWINDOW %i\n",GDK_WINDOW_XID (main_widget->window)); */
priv->desktop_plugin = desktop_plugin;
+
+
priv->view = view;
+ fill_priv(priv);
+ fprintf(stderr,"THEME %s\n", priv->theme);
+
+ /* Check activity of opition "One theme in all views" */
+ if (priv->one_in_all_view && view >1)
+ return -1;
- if (current_active_view() == view)
+
+ if (current_active_view() == view || priv->one_in_all_view)
priv->visible = TRUE;
else
priv->visible = FALSE;
- fill_priv(priv);
-
+
create_xwindow(priv);
/* Initialize DBUS */
livewp_initialize_dbus(priv);
fprintf(stderr,"Reload scene %s\n", desktop_plugin->priv->theme);
destroy_scene(desktop_plugin);
fill_priv(desktop_plugin->priv);
- gtk_widget_destroy(desktop_plugin->priv->window);
+ gtk_widget_destroy(desktop_plugin->priv->window);
+ if (desktop_plugin->priv->one_in_all_view && desktop_plugin->priv->view >1)
+ exit(-1);
create_xwindow(desktop_plugin->priv);
init_scene_theme(desktop_plugin);
}
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_button = 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);
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)));
+ if (hildon_check_button_get_active (HILDON_CHECK_BUTTON(one_in_all_view_button))){
+ stop_applet(2);
+ stop_applet(3);
+ stop_applet(4);
+ }
+ send_dbus_signal (priv, LIVEWP_SIGNAL_INTERFACE, LIVEWP_SIGNAL_PATH, LIVEWP_RELOAD_CONFIG);
+ }
if (window)
gtk_widget_destroy(window);
}
GSList * get_list_exthemes(void);
void show_problem_package (GtkWidget *widget, gchar *package_name);
void changed_value_one_in_all_cb (GtkWidget *toggle, Animation_WallpaperPrivate *priv);
+void save_one_in_all_views_to_config(gboolean one_in_all_views);