Changeset 3318
- Timestamp:
- 11/01/07 13:19:43 (6 years ago)
- Location:
- trunk/src/target/OM-2007.2/applications/openmoko-dialer2
- Files:
-
- 2 edited
-
ChangeLog (modified) (1 diff)
-
src/phone-kit/moko-talking.c (modified) (9 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/target/OM-2007.2/applications/openmoko-dialer2/ChangeLog
r3315 r3318 1 2007-11-01 Thomas Wood <thomas@openedhand.com> 2 3 * src/phone-kit/moko-talking.c: 4 Revert use of GdkPixbufSimpleAnim as it does not support looping 5 1 6 2007-10-31 Thomas Wood <thomas@openedhand.com> 2 7 -
trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/phone-kit/moko-talking.c
r3315 r3318 49 49 GtkWidget *status; 50 50 51 GdkPixbuf SimpleAnim *talking_anim;52 GdkPixbuf SimpleAnim *incoming_anim;53 GdkPixbuf SimpleAnim *outgoing_anim;51 GdkPixbuf *talking[N_PICS]; 52 GdkPixbuf *incoming[4]; 53 GdkPixbuf *outgoing[4]; 54 54 55 55 GTimer *dtimer; … … 101 101 } 102 102 103 static gboolean 104 incoming_timeout (MokoTalking *talking) 105 { 106 MokoTalkingPrivate *priv; 107 static gint i = 0; 108 109 g_return_val_if_fail (MOKO_IS_TALKING (talking), FALSE); 110 priv = talking->priv; 111 112 gtk_image_set_from_pixbuf (GTK_IMAGE (priv->icon), 113 priv->incoming[i]); 114 115 i++; 116 if (i == 4) 117 i = 0; 118 119 return TRUE; 120 } 121 103 122 void 104 123 moko_talking_incoming_call (MokoTalking *talking, … … 116 135 gtk_label_set_text (GTK_LABEL (priv->title), "Incoming Call"); 117 136 gtk_label_set_text (GTK_LABEL (priv->duration), ""); 118 gtk_image_set_from_animation (GTK_IMAGE (priv->icon), priv->incoming_anim); 137 gtk_image_set_from_file (GTK_IMAGE (priv->icon), 138 PKGDATADIR"/incoming_3.png"); 119 139 120 140 gtk_label_set_text (GTK_LABEL (priv->status), number); 121 141 gtk_image_set_from_file (GTK_IMAGE (priv->person), 122 142 PKGDATADIR"/unkown.png"); 143 if (priv->timeout) 144 g_source_remove (priv->timeout); 145 priv->timeout = g_timeout_add (1000, 146 (GSourceFunc)incoming_timeout, 147 (gpointer)talking); 123 148 gtk_window_present (GTK_WINDOW (priv->window)); 149 } 150 151 static gboolean 152 outgoing_timeout (MokoTalking *talking) 153 { 154 MokoTalkingPrivate *priv; 155 static gint i = 0; 156 157 g_return_val_if_fail (MOKO_IS_TALKING (talking), FALSE); 158 priv = talking->priv; 159 160 gtk_image_set_from_pixbuf (GTK_IMAGE (priv->icon), 161 priv->outgoing[i]); 162 163 i++; 164 if (i == 4) 165 i = 0; 166 167 return TRUE; 124 168 } 125 169 … … 147 191 gtk_label_set_text (GTK_LABEL (priv->title), "Outgoing Call"); 148 192 gtk_label_set_text (GTK_LABEL (priv->duration), ""); 149 gtk_image_set_from_animation (GTK_IMAGE (priv->icon), priv->outgoing_anim);150 193 151 194 gtk_label_set_markup (GTK_LABEL (priv->status), markup); … … 156 199 gtk_image_set_from_file (GTK_IMAGE (priv->person), 157 200 PKGDATADIR"/unkown.png"); 201 if (priv->timeout) 202 g_source_remove (priv->timeout); 203 priv->timeout = g_timeout_add (1000, 204 (GSourceFunc)outgoing_timeout, 205 (gpointer)talking); 206 158 207 g_free (markup); 159 208 gtk_window_present (GTK_WINDOW (priv->window)); … … 166 215 gdouble elapsed; 167 216 gint hour, min, sec; 168 gchar *text = NULL; 217 gchar *markup = NULL; 218 static gint i = 0; 169 219 170 220 g_return_val_if_fail (MOKO_IS_TALKING (talking), FALSE); … … 179 229 sec = (gint) (elapsed - 3600 * hour - 60 * min); 180 230 181 text = g_strdup_printf ("%02d:%02d:%02d", hour, min, sec); 182 gtk_label_set_text (GTK_LABEL (priv->duration), text); 183 g_free(text); 231 markup = g_strdup_printf ("%02d:%02d:%02d", hour, min, sec); 232 gtk_label_set_markup (GTK_LABEL (priv->duration), markup); 184 233 } 185 234 235 gtk_image_set_from_pixbuf (GTK_IMAGE (priv->icon), 236 priv->talking[i]); 237 238 i++; 239 if (i == 5) 240 i = 0; 241 242 g_free(markup); 186 243 return TRUE; 187 244 } … … 210 267 gtk_label_set_text (GTK_LABEL (priv->title), "Talking"); 211 268 gtk_label_set_text (GTK_LABEL (priv->duration), "00:00:00"); 212 gtk_image_set_from_animation (GTK_IMAGE (priv->icon), priv->talking_anim); 269 gtk_image_set_from_file (GTK_IMAGE (priv->icon), 270 PKGDATADIR"/talking_3.png"); 213 271 214 272 /* start call duration timer */ … … 428 486 429 487 /* Load the pixbufs */ 430 priv->talking_anim = gdk_pixbuf_simple_anim_new (96, 96, 1); 431 gdk_pixbuf_simple_anim_add_frame (priv->talking_anim, 432 gdk_pixbuf_new_from_file (PKGDATADIR"/talking_0.png", NULL)); 433 gdk_pixbuf_simple_anim_add_frame (priv->talking_anim, 434 gdk_pixbuf_new_from_file (PKGDATADIR"/talking_1.png", NULL)); 435 gdk_pixbuf_simple_anim_add_frame (priv->talking_anim, 436 gdk_pixbuf_new_from_file (PKGDATADIR"/talking_2.png", NULL)); 437 gdk_pixbuf_simple_anim_add_frame (priv->talking_anim, 438 gdk_pixbuf_new_from_file (PKGDATADIR"/talking_3.png", NULL)); 439 440 priv->incoming_anim = gdk_pixbuf_simple_anim_new (96, 96, 1); 441 gdk_pixbuf_simple_anim_add_frame (priv->incoming_anim, 442 gdk_pixbuf_new_from_file (PKGDATADIR"/incoming_0.png", NULL)); 443 gdk_pixbuf_simple_anim_add_frame (priv->incoming_anim, 444 gdk_pixbuf_new_from_file (PKGDATADIR"/incoming_1.png", NULL)); 445 gdk_pixbuf_simple_anim_add_frame (priv->incoming_anim, 446 gdk_pixbuf_new_from_file (PKGDATADIR"/incoming_2.png", NULL)); 447 gdk_pixbuf_simple_anim_add_frame (priv->incoming_anim, 448 gdk_pixbuf_new_from_file (PKGDATADIR"/incoming_3.png", NULL)); 449 450 priv->outgoing_anim = gdk_pixbuf_simple_anim_new (96, 96, 1); 451 gdk_pixbuf_simple_anim_add_frame (priv->outgoing_anim, 452 gdk_pixbuf_new_from_file (PKGDATADIR"/outgoing_0.png", NULL)); 453 gdk_pixbuf_simple_anim_add_frame (priv->outgoing_anim, 454 gdk_pixbuf_new_from_file (PKGDATADIR"/outgoing_1.png", NULL)); 455 gdk_pixbuf_simple_anim_add_frame (priv->outgoing_anim, 456 gdk_pixbuf_new_from_file (PKGDATADIR"/outgoing_2.png", NULL)); 457 gdk_pixbuf_simple_anim_add_frame (priv->outgoing_anim, 458 gdk_pixbuf_new_from_file (PKGDATADIR"/outgoing_3.png", NULL)); 488 for (i = 0; i < N_PICS; i++) 489 { 490 if (i == 0) 491 priv->talking[i] = gdk_pixbuf_new_from_file (PKGDATADIR"/talking.png", 492 NULL); 493 else 494 { 495 gchar *name = g_strdup_printf ("%s/talking_%d.png", PKGDATADIR, i-1); 496 priv->talking[i] = gdk_pixbuf_new_from_file (name, NULL); 497 g_free (name); 498 } 499 if (G_IS_OBJECT (priv->talking[i])) 500 g_object_ref (priv->talking[i]); 501 } 502 for (i = 0; i < N_PICS-1; i++) 503 { 504 gchar *name = g_strdup_printf ("%s/outgoing_%d.png", PKGDATADIR, i); 505 priv->outgoing[i] = gdk_pixbuf_new_from_file (name, NULL); 506 g_free (name); 507 if (G_IS_OBJECT (priv->outgoing[i])) 508 g_object_ref (priv->outgoing[i]); 509 } 510 for (i = 0; i < N_PICS-1; i++) 511 { 512 gchar *name = g_strdup_printf ("%s/incoming_%d.png", PKGDATADIR, i); 513 priv->incoming[i] = gdk_pixbuf_new_from_file (name, NULL); 514 g_free (name); 515 if (G_IS_OBJECT (priv->incoming[i])) 516 g_object_ref (priv->incoming[i]); 517 518 } 459 519 460 520 priv->window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
Note: See TracChangeset
for help on using the changeset viewer.
