added into billboard info about missed calls, sms, chat, mail from notifications...
[livewp] / applet / src / livewp-scene.c
index c7056fd..d012083 100644 (file)
@@ -33,7 +33,11 @@ destroy_scene(AWallpaperPlugin *desktop_plugin)
         tmp = g_slist_next(tmp);
     }
     g_slist_free(tmp);
-
+    desktop_plugin->priv->scene->actors = NULL;
+    if (desktop_plugin->priv->scene){
+       g_free(desktop_plugin->priv->scene);
+       desktop_plugin->priv->scene = NULL;
+    }
 }
 
 void
@@ -41,16 +45,19 @@ reload_scene(AWallpaperPlugin *desktop_plugin)
 {
     fprintf(stderr,"Reload scene %s\n", desktop_plugin->priv->theme);  
     destroy_scene(desktop_plugin);
+#if 0
     if (!strcmp(desktop_plugin->priv->theme,"Modern"))
-        init_scene(desktop_plugin);
+        init_scene_Modern(desktop_plugin);
     else if (!strcmp(desktop_plugin->priv->theme,"Berlin")) 
-        init_scene1(desktop_plugin);
+        init_scene_Berlin(desktop_plugin);
     else if (!strcmp(desktop_plugin->priv->theme,"Matrix")) 
-        init_scene2(desktop_plugin);
+        init_scene_Matrix(desktop_plugin);
+#endif
+    init_scene_theme(desktop_plugin);
 }
 
 void
-init_scene2(AWallpaperPlugin *desktop_plugin)
+init_scene_Matrix(AWallpaperPlugin *desktop_plugin)
 {
   Actor *actor;
   Scene *scene;
@@ -135,7 +142,7 @@ init_scene2(AWallpaperPlugin *desktop_plugin)
 
 /* Init Modern Scene */
 void
-init_scene(AWallpaperPlugin *desktop_plugin)
+init_scene_Modern(AWallpaperPlugin *desktop_plugin)
 {
   Actor *actor;
   Scene *scene;
@@ -206,12 +213,21 @@ init_scene(AWallpaperPlugin *desktop_plugin)
   scene->actors = g_slist_append(scene->actors, actor);
 
   actor = init_object(desktop_plugin, "stend", "stend0.png", 
-                      482, 146, 9, 300, 305, 
+                      452, 166, 9, 300, 305, 
                       TRUE, TRUE, 100, 255, 
                       (gpointer)&change_static_actor, NULL, NULL);
   change_static_actor(actor, desktop_plugin);
   scene->actors = g_slist_append(scene->actors, actor);
 
+  actor = init_object(desktop_plugin, "billboard_text", "",
+                      470, 174, 9, 300, 108,
+                      TRUE, FALSE, 100, 255,
+                      (gpointer)&change_billboard, NULL, NULL);
+  create_hildon_actor_text(actor, desktop_plugin);
+  //actor->time_start_animation = time(NULL) + 20;
+  change_billboard(actor, desktop_plugin);
+  scene->actors = g_slist_append(scene->actors, actor);
+
   actor = init_object(desktop_plugin, "tram", "tram.png", 
                       -300, 225, 10, 350, 210, 
                       FALSE, FALSE, 100, 255, 
@@ -452,7 +468,7 @@ init_scene(AWallpaperPlugin *desktop_plugin)
 
 /* Init Berlin Scene */
 void
-init_scene1(AWallpaperPlugin *desktop_plugin)
+init_scene_Berlin(AWallpaperPlugin *desktop_plugin)
 {
   Actor *actor, *actor1, *actor2;
   Scene *scene;
@@ -620,3 +636,12 @@ init_scene1(AWallpaperPlugin *desktop_plugin)
 
 }
 
+void 
+init_scene_theme(AWallpaperPlugin *desktop_plugin)
+{
+    void (*func)(gpointer);
+    func = g_hash_table_lookup(desktop_plugin->priv->hash_scene_func, desktop_plugin->priv->theme);
+    if (func){
+        (*func)(desktop_plugin);
+    }
+}