done tapes with accelerometer
[livewp] / applet / src / livewp-main.c
index cfa03dd..86248c6 100644 (file)
 */
 /*******************************************************************************/
 #include "livewp-common.h"
+#include "livewp-scene.h"
 #include "livewp-settings.h"
+#include "livewp-home-widget.h"
 /*******************************************************************************/
+#include <X11/extensions/Xrender.h>
+#include <gdk/gdkx.h>
+
+#include <X11/Xatom.h>
 
 void 
 btn_setting_clicked(HildonButton *btn, gpointer data)
@@ -32,27 +38,48 @@ btn_setting_clicked(HildonButton *btn, gpointer data)
     Animation_WallpaperPrivate *priv = data;
     // open settings dialog
     fprintf(stderr, "btn setting clicked, %s\n", priv->theme);
-    lw_settings(priv->desktop_plugin, priv);
+    lw_main_settings(priv, NULL);
     fprintf(stderr, "btn setting clicked, %s\n", priv->theme);
 }
+void
+btn_power_clicked(HildonButton *btn, gpointer data)
+{
+    const gchar *value; 
+    value = hildon_button_get_value(btn);
+    fprintf(stderr, "applet must be %s\n", value);
+    if (!strcmp(value, "stop"))
+        hildon_button_set_text(HILDON_BUTTON(btn), _("Start"), "start");
+    else 
+        hildon_button_set_text(HILDON_BUTTON(btn), _("Stop"), "stop");
+}
+static void set_live_bg (Display *display, Window xwindow, int mode)
+{
+        Atom atom;
+
+        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);
+}
 
 int
 main(int argc, char *argv[])
 {
     GtkWidget *main_widget = NULL;
     GtkWidget *window;
-    GtkWidget *btn_setting, *vbox;
+    GtkWidget *btn_setting, *vbox, *btn_power;
     gint result;
     HildonProgram       *app;
 
+    AWallpaperPlugin *desktop_plugin = g_new0 (AWallpaperPlugin, 1);
     Animation_WallpaperPrivate *priv = g_new0 (Animation_WallpaperPrivate, 1);
+    desktop_plugin->priv = priv; 
+
 
-#ifdef ENABLE_NLS
-    setlocale(LC_ALL, "");
-    bindtextdomain(GETTEXT_PACKAGE, LOCALEDIR);
-    bind_textdomain_codeset(GETTEXT_PACKAGE, "UTF-8");
-    textdomain(GETTEXT_PACKAGE);
-#endif
     /* Ininitializing */
     hildon_gtk_init (&argc, &argv);
     app = HILDON_PROGRAM (hildon_program_get_instance());
@@ -64,26 +91,40 @@ main(int argc, char *argv[])
         return 1;
     }
 
+#ifdef ENABLE_NLS
+    setlocale(LC_ALL, "");
+    bindtextdomain(GETTEXT_PACKAGE, LOCALEDIR);
+    bind_textdomain_codeset(GETTEXT_PACKAGE, "UTF-8");
+    textdomain(GETTEXT_PACKAGE);
+#endif
+/* Create Main GUI */
+    main_widget = hildon_window_new ();
+    gtk_window_set_title(GTK_WINDOW(main_widget), PACKAGE);
+    
+    gtk_widget_show_all(GTK_WIDGET(main_widget));
+
+    priv->hash_scene_func = g_hash_table_new(g_str_hash, g_str_equal);
+    g_hash_table_insert(priv->hash_scene_func, g_strdup("Berlin"), (gpointer)&init_scene_Berlin);
+    g_hash_table_insert(priv->hash_scene_func, g_strdup("Modern"), (gpointer)&init_scene_Modern);
+    g_hash_table_insert(priv->hash_scene_func, g_strdup("Matrix"), (gpointer)&init_scene_Matrix);
+
+    priv->scene = NULL;
+    priv->window = main_widget;
+
+    priv->view = 2;
+    desktop_plugin->priv->visible = TRUE;
     /* Load config */
     read_config(priv);
+    /* Initialize DBUS */
+    livewp_initialize_dbus(priv);
+    set_live_bg(GDK_WINDOW_XDISPLAY (main_widget->window), GDK_WINDOW_XID (main_widget->window), 1);
+    init_scene_theme(desktop_plugin);
+        
+    priv->long_timer = g_timeout_add(LONG_TIMER, (GtkFunction)long_timeout, desktop_plugin);
 
-    /* Create Main GUI */
-    main_widget = hildon_stackable_window_new ();
-    gtk_window_set_title(GTK_WINDOW(main_widget), PACKAGE);
-
-    vbox = gtk_vbox_new(FALSE, 5);
-    btn_setting = hildon_button_new(HILDON_SIZE_AUTO_WIDTH | HILDON_SIZE_FINGER_HEIGHT,
-                               HILDON_BUTTON_ARRANGEMENT_HORIZONTAL);
-    hildon_button_set_text(HILDON_BUTTON(btn_setting), _("Settings"), "");
-    g_signal_connect(btn_setting, "clicked", G_CALLBACK(btn_setting_clicked), priv);
-    //gtk_container_add(GTK_CONTAINER(main_widget), button);
-    gtk_box_pack_start(vbox, btn_setting, FALSE, FALSE, 0);
-    gtk_container_add(GTK_CONTAINER(main_widget), vbox);
+    
 
-    g_signal_connect(main_widget, "destroy", G_CALLBACK(gtk_main_quit), NULL);
-    hildon_program_add_window(app, HILDON_WINDOW(main_widget));
 
-    gtk_widget_show_all(GTK_WIDGET(main_widget));
-    gtk_main();
+        gtk_main();
     return 0;
 }