z);
}
+int
+func_callback(void *user_data, int argc, char **argv, char **azColName)
+{
+ fprintf(stderr, "callback\n");
+ int i;
+ GtkTreeIter iter;
+ GtkListStore *list = GTK_LIST_STORE(user_data);
+ gtk_list_store_append(list, &iter);
+ for(i = 0; i < argc; i++){
+ fprintf(stderr, "argc=%d, argv=%s, colname=%s\n", argc, argv, azColName[i]);
+ //if(!strcmp(azColName[i], "count"))
+ gtk_list_store_set(list, &iter, 0, atoi(argv[i]), -1);
+ }
+ return 0;
+}
+void
+change_billboard(Actor * actor, AWallpaperPlugin *desktop_plugin)
+{
+ GtkWidget *label;
+ sqlite3 *db = NULL;
+ sqlite3_stmt *res = NULL;
+ gchar *errMsg = NULL;
+ gchar sql[1024], str[2048];
+ gint call_count=0, sms_count=0, rc=0;
+ GtkListStore *list = NULL;
+
+ rc = sqlite3_open("/home/user/.rtcom-eventlogger/el.db", &db);
+ if (rc){
+ fprintf(stderr, "error open db %d %s\n", rc, sqlite3_errmsg(db));
+ }else {
+ snprintf(sql, sizeof(sql)-1, "select count(id) from Events where event_type_id=%d", 3);
+#if 0
+ gtk_list_store_new(1, G_TYPE_INT);
+ rc = sqlite3_exec(db, sql, func_callback, (void*)list, &errMsg);
+ if (rc != SQLITE_OK){
+ fprintf(stderr, "error %s\n", errMsg);
+
+ }
+ fprintf(stderr, "after exec sql=%s rc= %d err=%d \n", sql, rc, errMsg);
+#endif
+//#if 0
+ rc = sqlite3_prepare(db, sql, sizeof(sql)-1, &res, NULL);
+ if (rc != SQLITE_OK){
+ fprintf(stderr, "error prepare %d %s\n", rc, sql);
+ }
+ if (sqlite3_step(res) != SQLITE_ROW){
+ fprintf(stderr, "not sqlite_row\n");
+ }
+ call_count = sqlite3_column_int(res, 0);
+ fprintf(stderr, "count missing calls = %d\n", call_count);
+ sqlite3_finalize(res);
+
+ snprintf(sql, sizeof(sql)-1, "select count(id) from Events where event_type_id=%d and is_read=%d", 7, 0);
+ rc = sqlite3_prepare(db, sql, sizeof(sql)-1, &res, NULL);
+ if (rc != SQLITE_OK){
+ fprintf(stderr, "error prepare %d %s\n", rc, sql);
+ }
+ if (sqlite3_step(res) != SQLITE_ROW){
+ fprintf(stderr, "not sqlite_row\n");
+ }
+ sms_count = sqlite3_column_int(res, 0);
+ fprintf(stderr, "count sms = %d\n", sms_count);
+ sqlite3_finalize(res);
+
+//#endif
+ sqlite3_close(db);
+ }
+ label = actor->image;
+ snprintf(str, sizeof(str)-1, "Missed calls: %d\nUnread sms: %d", call_count, sms_count);
+ gtk_label_set_text(label, str);
+ actor->time_start_animation = time(NULL) + 20;
+}
+
+
void
change_moon(Actor * actor, AWallpaperPlugin *desktop_plugin)
{
#include "livewp-common.h"
#include <sys/time.h>
#include "livewp-rules.h"
+#include <sqlite3.h>
typedef struct _Actor Actor;
struct _Actor
void set_actor_position(Actor *actor, gint x, gint y, gint z, AWallpaperPlugin *desktop_plugin);
void set_actor_scale(Actor *actor, double scalex, double scaley);
void set_actor_visible(Actor *actor, gboolean visible);
+void change_billboard(Actor * actor, AWallpaperPlugin *desktop_plugin);
void change_moon(Actor * actor, AWallpaperPlugin *desktop_plugin);
void change_sun(Actor * actor, AWallpaperPlugin *desktop_plugin);
void change_tram(Actor * actor, AWallpaperPlugin *desktop_plugin);
actor->widget = NULL;
}
+void
+create_hildon_actor_text(Actor *actor, AWallpaperPlugin *desktop_plugin, gchar *text)
+{
+ GtkWidget *ha = NULL;
+ GdkPixbuf *pixbuf = NULL;
+ GtkWidget *image = NULL;
+ GtkWidget *label = NULL;
+ gchar *str = NULL;
+
+ ha = hildon_animation_actor_new();
+ label = gtk_label_new(text);
+
+ if (label){
+ //g_signal_connect(G_OBJECT(label), "expose_event",
+ // G_CALLBACK(expose_event), NULL);
+
+ gtk_container_add (GTK_CONTAINER (ha), label);
+ }
+ realize(ha);
+ gtk_widget_show(label);
+ gtk_widget_show_all(ha);
+
+ /* TO DO check it */
+ /* gdk_flush (); */
+
+ //g_object_set_data(G_OBJECT(ha), "image", image);
+ actor->image = label;
+ hildon_animation_actor_set_parent (HILDON_ANIMATION_ACTOR (ha), GTK_WINDOW(desktop_plugin));
+ actor->widget = ha;
+ set_actor_position(actor, actor->x, actor->y, actor->z, desktop_plugin);
+ set_actor_scale(actor, (double)actor->scale/100, (double)actor->scale/100);
+ set_actor_visible(actor, actor->visible);
+}
+
+
void
create_hildon_actor(Actor *actor, AWallpaperPlugin *desktop_plugin)
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);
//#endif
- //priv->theme = g_strdup("Modern");
+ priv->theme = g_strdup("Modern");
desktop_plugin->priv->main_widget = gtk_fixed_new();
gtk_widget_set_size_request(desktop_plugin->priv->main_widget, 100, 32);
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", "",
+ 460, 180, 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,