Changeset 3315
- Timestamp:
- 10/31/07 18:42:50 (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
r3314 r3315 1 2007-10-31 Thomas Wood <thomas@openedhand.com> 2 3 * src/phone-kit/moko-talking.c: Replace manual animation functions with 4 GdkPixbufSimpleAnim 5 1 6 2007-10-31 Thomas Wood <thos@openedhand.com> 2 7 -
trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/phone-kit/moko-talking.c
r3314 r3315 49 49 GtkWidget *status; 50 50 51 GdkPixbuf *talking[N_PICS];52 GdkPixbuf *incoming[4];53 GdkPixbuf *outgoing[4];51 GdkPixbufSimpleAnim *talking_anim; 52 GdkPixbufSimpleAnim *incoming_anim; 53 GdkPixbufSimpleAnim *outgoing_anim; 54 54 55 55 GTimer *dtimer; … … 101 101 } 102 102 103 static gboolean104 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 122 103 void 123 104 moko_talking_incoming_call (MokoTalking *talking, … … 135 116 gtk_label_set_text (GTK_LABEL (priv->title), "Incoming Call"); 136 117 gtk_label_set_text (GTK_LABEL (priv->duration), ""); 137 gtk_image_set_from_file (GTK_IMAGE (priv->icon), 138 PKGDATADIR"/incoming_3.png"); 118 gtk_image_set_from_animation (GTK_IMAGE (priv->icon), priv->incoming_anim); 139 119 140 120 gtk_label_set_text (GTK_LABEL (priv->status), number); 141 121 gtk_image_set_from_file (GTK_IMAGE (priv->person), 142 122 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);148 123 gtk_window_present (GTK_WINDOW (priv->window)); 149 }150 151 static gboolean152 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;168 124 } 169 125 … … 191 147 gtk_label_set_text (GTK_LABEL (priv->title), "Outgoing Call"); 192 148 gtk_label_set_text (GTK_LABEL (priv->duration), ""); 149 gtk_image_set_from_animation (GTK_IMAGE (priv->icon), priv->outgoing_anim); 193 150 194 151 gtk_label_set_markup (GTK_LABEL (priv->status), markup); … … 199 156 gtk_image_set_from_file (GTK_IMAGE (priv->person), 200 157 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 207 158 g_free (markup); 208 159 gtk_window_present (GTK_WINDOW (priv->window)); … … 215 166 gdouble elapsed; 216 167 gint hour, min, sec; 217 gchar *markup = NULL; 218 static gint i = 0; 168 gchar *text = NULL; 219 169 220 170 g_return_val_if_fail (MOKO_IS_TALKING (talking), FALSE); … … 229 179 sec = (gint) (elapsed - 3600 * hour - 60 * min); 230 180 231 markup = g_strdup_printf ("%02d:%02d:%02d", hour, min, sec); 232 gtk_label_set_markup (GTK_LABEL (priv->duration), markup); 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); 233 184 } 234 185 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);243 186 return TRUE; 244 187 } … … 267 210 gtk_label_set_text (GTK_LABEL (priv->title), "Talking"); 268 211 gtk_label_set_text (GTK_LABEL (priv->duration), "00:00:00"); 269 gtk_image_set_from_file (GTK_IMAGE (priv->icon), 270 PKGDATADIR"/talking_3.png"); 212 gtk_image_set_from_animation (GTK_IMAGE (priv->icon), priv->talking_anim); 271 213 272 214 /* start call duration timer */ … … 486 428 487 429 /* Load the pixbufs */ 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 } 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)); 519 459 520 460 priv->window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
Note: See TracChangeset
for help on using the changeset viewer.
