z);
}
-int
-func_callback(void *user_data, int argc, char **argv, char **azColName)
+int get_notify_count(gchar *notify_type)
{
- 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);
+ sqlite3 *db = NULL;
+ sqlite3 *res = NULL;
+ gint rc = 0, result = 0;
+ gchar sql[1024];
+
+ rc = sqlite3_open("/home/user/.config/hildon-desktop/notifications.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 notifications where icon_name='%s'", notify_type);
+ 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");
+ }
+ result = sqlite3_column_int(res, 0);
+ //fprintf(stderr, "count missing calls = %d\n", call_count);
+ sqlite3_finalize(res);
+
+ sqlite3_close(db);
}
- return 0;
+ return result;
}
+gchar * read_notification()
+{
+ gchar *message = "";
+ gint count = 0;
+
+ fprintf(stderr, "read notification \n");
+ count = get_notify_count("general_missed");
+ if (count > 0){
+ message = g_strdup_printf("%s: %d", _("Missed calls"), count);
+ }
+ count = get_notify_count("general_sms");
+ if (count > 0){
+ if (message){
+ message = g_strdup_printf("%s \n%s: %d", message, _("Missed sms"), count);
+ }else {
+ message = g_strdup_printf("%s: %d", _("Missed sms"), count);
+ }
+ }
+ count = get_notify_count("general_chat");
+ if (count > 0){
+ if (message){
+ message = g_strdup_printf("%s \n%s: %d", message, _("Missed chat"), count);
+ }else {
+ message = g_strdup_printf("%s: %d", _("Missed chat"), count);
+ }
+ }
+ count = get_notify_count("qgn_list_messagin");
+ if (count > 0){
+ if (message){
+ message = g_strdup_printf("%s \n%s: %d", message, _("Missed mail"), count);
+ }else {
+ message = g_strdup_printf("%s: %d", _("Missed mail"), count);
+ }
+ }
+ fprintf(stderr, "notify=%s\n", message);
+ return message;
+}
+
void
change_billboard(Actor * actor, AWallpaperPlugin *desktop_plugin)
{
GtkWidget *label;
+ gchar *mes = NULL, *message = NULL;
+ PangoFontDescription *pfd = NULL;
+ gint count = 0;
+ Actor *a = NULL;
+
+ fprintf(stderr, "change_billboard\n");
+
+ if (desktop_plugin->priv->scene->notification < time(NULL)){
+ count = get_notify_count("general_missed");
+ a = g_ptr_array_index(actor->child, 0);
+ if (count > 0){
+ set_actor_visible(a, TRUE);
+ }else {
+ set_actor_visible(a, FALSE);
+ }
+ count = get_notify_count("general_sms");
+ a = g_ptr_array_index(actor->child, 3);
+ if (count > 0){
+ set_actor_visible(a, TRUE);
+ }else {
+ set_actor_visible(a, FALSE);
+ }
+ count = get_notify_count("general_chat");
+ a = g_ptr_array_index(actor->child, 1);
+ if (count > 0){
+ set_actor_visible(a, TRUE);
+ }else {
+ set_actor_visible(a, FALSE);
+ }
+ count = get_notify_count("qgn_list_messagin");
+ a = g_ptr_array_index(actor->child, 2);
+ if (count > 0){
+ set_actor_visible(a, TRUE);
+ }else {
+ set_actor_visible(a, FALSE);
+ }
+
+ #if 0
+ message = read_notification();
+ label = actor->image;
+ mes = g_markup_printf_escaped("<span bgcolor=\"%s\" foreground=\"%s\">%s</span>", "#FFFFFF", "#000000", message);
+ gtk_label_set_markup(GTK_LABEL(label), mes);
+ pfd = pango_font_description_from_string("Sans 16");
+ gtk_widget_modify_font(GTK_WIDGET(label), NULL);
+ gtk_widget_modify_font(GTK_WIDGET(label), pfd);
+ pango_font_description_free(pfd);
+#endif
+ desktop_plugin->priv->scene->notification = FALSE;
+ }
+ actor->time_start_animation = time(NULL) + 20;
+}
+
+
+void
+change_billboard1(Actor * actor, AWallpaperPlugin *desktop_plugin)
+{
+ GtkWidget *label;
sqlite3 *db = NULL;
sqlite3_stmt *res = NULL;
gchar *errMsg = NULL, *message;
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){