Changeset 3315


Ignore:
Timestamp:
10/31/07 18:42:50 (6 years ago)
Author:
thomas
Message:
Location:
trunk/src/target/OM-2007.2/applications/openmoko-dialer2
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/target/OM-2007.2/applications/openmoko-dialer2/ChangeLog

    r3314 r3315  
     12007-10-31  Thomas Wood  <thomas@openedhand.com> 
     2 
     3        * src/phone-kit/moko-talking.c: Replace manual animation functions with 
     4        GdkPixbufSimpleAnim 
     5 
    162007-10-31  Thomas Wood  <thos@openedhand.com> 
    27 
  • trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/phone-kit/moko-talking.c

    r3314 r3315  
    4949  GtkWidget          *status; 
    5050 
    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; 
    5454 
    5555  GTimer             *dtimer; 
     
    101101} 
    102102 
    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  
    122103void 
    123104moko_talking_incoming_call (MokoTalking      *talking,  
     
    135116  gtk_label_set_text (GTK_LABEL (priv->title), "Incoming Call"); 
    136117  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); 
    139119 
    140120  gtk_label_set_text (GTK_LABEL (priv->status), number); 
    141121  gtk_image_set_from_file (GTK_IMAGE (priv->person), 
    142122                           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); 
    148123  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; 
    168124} 
    169125 
     
    191147  gtk_label_set_text (GTK_LABEL (priv->title), "Outgoing Call"); 
    192148  gtk_label_set_text (GTK_LABEL (priv->duration), ""); 
     149  gtk_image_set_from_animation (GTK_IMAGE (priv->icon), priv->outgoing_anim); 
    193150 
    194151  gtk_label_set_markup (GTK_LABEL (priv->status), markup); 
     
    199156    gtk_image_set_from_file (GTK_IMAGE (priv->person), 
    200157                             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  
    207158  g_free (markup); 
    208159  gtk_window_present (GTK_WINDOW (priv->window)); 
     
    215166  gdouble elapsed; 
    216167  gint hour, min, sec; 
    217   gchar *markup = NULL; 
    218   static gint i = 0; 
     168  gchar *text = NULL; 
    219169 
    220170  g_return_val_if_fail (MOKO_IS_TALKING (talking), FALSE); 
     
    229179    sec = (gint) (elapsed - 3600 * hour - 60 * min); 
    230180 
    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); 
    233184  } 
    234185 
    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); 
    243186  return TRUE; 
    244187} 
     
    267210  gtk_label_set_text (GTK_LABEL (priv->title), "Talking"); 
    268211  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); 
    271213 
    272214  /* start call duration timer */ 
     
    486428 
    487429  /* 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)); 
    519459 
    520460  priv->window = gtk_window_new (GTK_WINDOW_TOPLEVEL); 
Note: See TracChangeset for help on using the changeset viewer.