#include <gtk/gtk.h>
#include <hildon/hildon.h>
#include <locale.h>
-
+#include <libhildondesktop/libhildondesktop.h>
#define GETTEXT_PACKAGE "livewp"
#include <glib/gi18n-lib.h>
} MultiActor;
+typedef struct _AWallpaperPlugin AWallpaperPlugin;
+typedef struct _AWallpaperPluginClass AWallpaperPluginClass;
typedef struct _Animation_WallpaperPrivate Animation_WallpaperPrivate;
+
struct _Animation_WallpaperPrivate
{
- gint timer;
- gchar *theme;
+ gint timer;
+ gchar *theme;
+ AWallpaperPlugin *desktop_plugin;
+};
+
+struct _AWallpaperPlugin
+{
+ HDHomePluginItem hitem;
+ GObject *parent;
+ Animation_WallpaperPrivate *priv;
};
+struct _AWallpaperPluginClass
+{
+ HDHomePluginItemClass parent_class;
+
+};
+
+
}
}
+void
+reload_scene(AWallpaperPlugin *desktop_plugin){
+ fprintf(stderr,"Reload scene\n");
+}
static void
init_scene(AWallpaperPlugin *desktop_plugin)
{
desktop_plugin->priv = Animation_Wallpaper_HOME_PLUGIN_GET_PRIVATE (desktop_plugin);
/* Load config */
read_config(priv);
+ priv->desktop_plugin = desktop_plugin;
label = gtk_label_new ("");
gtk_widget_set_size_request(label, 95, 30);
gtk_widget_show (label);
hd_home_plugin_item_set_settings (HD_HOME_PLUGIN_ITEM (desktop_plugin), TRUE);
g_signal_connect (desktop_plugin, "show-settings",
- G_CALLBACK (lw_settings), NULL);
+ G_CALLBACK (lw_settings), priv);
g_signal_connect (desktop_plugin, "notify::is-on-current-desktop",
G_CALLBACK (desktop_plugin_visible_notify), desktop_plugin);
#include <glib-object.h>
-#include <libhildondesktop/libhildondesktop.h>
G_BEGIN_DECLS
-typedef struct _AWallpaperPlugin AWallpaperPlugin;
-typedef struct _AWallpaperPluginClass AWallpaperPluginClass;
#define Animation_Wallpaper_TYPE_HOME_PLUGIN (animation_wallpaper_plugin_get_type ())
Animation_Wallpaper_TYPE_HOME_PLUGIN, AWallpaperPluginClass))
-struct _AWallpaperPlugin
-{
- HDHomePluginItem hitem;
- GObject *parent;
- Animation_WallpaperPrivate *priv;
-};
-
-struct _AWallpaperPluginClass
-{
- HDHomePluginItemClass parent_class;
-
-};
-
typedef struct {
GtkWidget * window;
GSList * static_actors;
gtk_dialog_run(GTK_DIALOG(window));
}
-
+/*******************************************************************************/
GtkWidget *
create_theme_selector (void)
{
hildon_touch_selector_append_text (HILDON_TOUCH_SELECTOR (selector), _("Berlin"));
hildon_touch_selector_append_text (HILDON_TOUCH_SELECTOR (selector), _("Modern"));
- hildon_touch_selector_set_active (HILDON_TOUCH_SELECTOR (selector), 0, 2);
return selector;
}
-
+/*******************************************************************************/
GtkWidget *
-create_themes_button (HildonTouchSelector *selector){
+create_themes_button (gchar *theme){
GtkWidget *button;
+ GtkWidget *selector;
+ selector = create_theme_selector();
button = hildon_picker_button_new (HILDON_SIZE_AUTO, HILDON_BUTTON_ARRANGEMENT_VERTICAL);
hildon_button_set_title (HILDON_BUTTON (button), "Theme");
hildon_picker_button_set_selector (HILDON_PICKER_BUTTON (button),
HILDON_TOUCH_SELECTOR (selector));
+ if (theme) {
+ if (!strcmp(theme, _("Berlin"))){
+ hildon_touch_selector_set_active (HILDON_TOUCH_SELECTOR (selector), 0, 0);
+ hildon_button_set_value(button, _("Berlin"));
+ }
+ if (!strcmp(theme, _("Modern"))){
+ hildon_touch_selector_set_active (HILDON_TOUCH_SELECTOR (selector), 0, 1);
+ hildon_button_set_value(button, _("Modern"));
+ }
+
+ }
return button;
}
-
+/*******************************************************************************/
void
-lw_settings(GtkWidget *widget, gpointer user_data){
+lw_settings(GtkWidget *widget, Animation_WallpaperPrivate *priv){
gint result;
GtkWidget *window = NULL;
- GtkWidget *selector, *save_button;
+ GtkWidget *save_button;
GtkWidget *theme_button;
window = gtk_dialog_new();
gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
gtk_window_set_modal(GTK_WINDOW(window), TRUE);
/* Create Theme button */
- selector = create_theme_selector();
- theme_button = create_themes_button(selector);
-
+ theme_button = create_themes_button(priv->theme);
gtk_box_pack_start(GTK_BOX(GTK_DIALOG(window)->vbox),
theme_button, TRUE, TRUE, 0);
gtk_widget_show (theme_button);
switch(result){
case GTK_RESPONSE_YES:
fprintf(stderr,"Yes\n");
+ if (hildon_button_get_value(HILDON_BUTTON (theme_button))){
+ if (priv->theme)
+ g_free(priv->theme);
+ if (!strcmp(hildon_button_get_value(HILDON_BUTTON (theme_button)), _("Berlin")))
+ priv->theme = g_strdup("Berlin");
+ if (!strcmp(hildon_button_get_value(HILDON_BUTTON (theme_button)), _("Modern")))
+ priv->theme = g_strdup("Modern");
+ }
+ save_config(priv);
+ reload_scene(priv->desktop_plugin);
break;
default:
case GTK_RESPONSE_OK: