r3314 - in trunk/src/target/OM-2007.2/applications/openmoko-dialer2: . src/phone-kit

thomas at sita.openmoko.org thomas at sita.openmoko.org
Wed Oct 31 17:56:01 CET 2007


Author: thomas
Date: 2007-10-31 17:56:00 +0100 (Wed, 31 Oct 2007)
New Revision: 3314

Modified:
   trunk/src/target/OM-2007.2/applications/openmoko-dialer2/ChangeLog
   trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/phone-kit/moko-dialer.c
   trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/phone-kit/moko-talking.c
Log:
* src/phone-kit/moko-dialer.c: (moko_dialer_hung_up),
(moko_dialer_rejected), (on_talking_reject_call),
(moko_dialer_init):
* src/phone-kit/moko-talking.c: (moko_talking_incoming_call),
(moko_talking_outgoing_call), (moko_talking_accepted_call),
(on_answer_clicked), (on_reject_clicked),
(moko_talking_class_init), (moko_talking_init):

Present a window for incoming call notification


Modified: trunk/src/target/OM-2007.2/applications/openmoko-dialer2/ChangeLog
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-dialer2/ChangeLog	2007-10-31 16:40:21 UTC (rev 3313)
+++ trunk/src/target/OM-2007.2/applications/openmoko-dialer2/ChangeLog	2007-10-31 16:56:00 UTC (rev 3314)
@@ -1,3 +1,15 @@
+2007-10-31  Thomas Wood  <thos at openedhand.com>
+
+	* src/phone-kit/moko-dialer.c: (moko_dialer_hung_up),
+	(moko_dialer_rejected), (on_talking_reject_call),
+	(moko_dialer_init):
+	* src/phone-kit/moko-talking.c: (moko_talking_incoming_call),
+	(moko_talking_outgoing_call), (moko_talking_accepted_call),
+	(on_answer_clicked), (on_reject_clicked),
+	(moko_talking_class_init), (moko_talking_init):
+
+	Present a window for incoming call notification
+
 2007-10-31  Thomas Wood  <thomas at openedhand.com>
 
 	* src/dialer/dialer-main.c: Added to repository

Modified: trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/phone-kit/moko-dialer.c
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/phone-kit/moko-dialer.c	2007-10-31 16:40:21 UTC (rev 3313)
+++ trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/phone-kit/moko-dialer.c	2007-10-31 16:56:00 UTC (rev 3314)
@@ -47,14 +47,8 @@
   gint                status;
   gchar               *incoming_clip;
 
-  /* Main Widgets */
-  GtkWidget          *window;
-  GtkWidget          *notebook;
-  
-  /* Pages of the notebook */
+  /* handles user interaction */
   GtkWidget          *talking;
-  GtkWidget          *keypad;
-  GtkWidget          *history;
 
   /* Special objects */
   MokoGsmdConnection *connection;
@@ -152,9 +146,6 @@
   
   priv->status = DIALER_STATUS_NORMAL;
 
-  if (gtk_notebook_get_n_pages (GTK_NOTEBOOK (priv->notebook)) == 3)
-    gtk_notebook_remove_page (GTK_NOTEBOOK (priv->notebook), 0);
-  
   moko_gsmd_connection_voice_hangup (priv->connection);   
   g_signal_emit (G_OBJECT (dialer), dialer_signals[HUNG_UP], 0);
   
@@ -167,17 +158,14 @@
 
   g_return_if_fail (MOKO_IS_DIALER (dialer));
   priv = dialer->priv;
-  
+
   priv->status = DIALER_STATUS_NORMAL;
 
   /* Stop the notification */
-  moko_notify_stop (priv->notify);  
+  moko_notify_stop (priv->notify);
 
-  if (gtk_notebook_get_n_pages (GTK_NOTEBOOK (priv->notebook)) == 3)
-    gtk_notebook_remove_page (GTK_NOTEBOOK (priv->notebook), 0);
-  
-  moko_gsmd_connection_voice_hangup (priv->connection);  
-  
+  moko_gsmd_connection_voice_hangup (priv->connection);
+
   g_signal_emit (G_OBJECT (dialer), dialer_signals[REJECTED], 0);
 }
 
@@ -235,9 +223,7 @@
 
   moko_gsmd_connection_voice_hangup (priv->connection);
   priv->status = DIALER_STATUS_NORMAL;
-  
-  gtk_notebook_remove_page (GTK_NOTEBOOK (priv->notebook), 0);
- 
+
   /* Finalise and add the journal entry */
   if (priv->journal && priv->entry)
   {
@@ -266,7 +252,6 @@
   moko_gsmd_connection_voice_hangup (priv->connection);
   
   priv->status = DIALER_STATUS_NORMAL;
-  gtk_notebook_remove_page (GTK_NOTEBOOK (priv->notebook), 0);
   
   g_signal_emit (G_OBJECT (dialer), dialer_signals[HUNG_UP], 0);
 }
@@ -385,16 +370,6 @@
   /* Set up the user interface */
   moko_talking_incoming_call (MOKO_TALKING (priv->talking), NULL, NULL);
 
-  gtk_notebook_insert_page (GTK_NOTEBOOK (priv->notebook), priv->talking,
-                            gtk_image_new_from_file (PKGDATADIR"/phone.png"),
-                            0);
-  gtk_container_child_set (GTK_CONTAINER (priv->notebook), priv->talking,
-                           "tab-expand", TRUE,
-                           NULL); 
-  gtk_notebook_set_current_page (GTK_NOTEBOOK (priv->notebook), 0);
-  
-  gtk_window_present (GTK_WINDOW (priv->window));
-
   /* Start the notification */
   moko_notify_start (priv->notify);
 
@@ -688,21 +663,8 @@
   /* Load the notification object */
   priv->notify = moko_notify_new ();
 
-  /* Create the window */
-  priv->window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
-  g_signal_connect (G_OBJECT (priv->window), "delete-event",
-                    (GCallback) gtk_widget_hide_on_delete, NULL);
-  gtk_window_set_title (GTK_WINDOW (priv->window), "Dialer");
 
-  /* Notebook */
-  priv->notebook = gtk_notebook_new ();
-  gtk_notebook_set_tab_pos (GTK_NOTEBOOK (priv->notebook), GTK_POS_BOTTOM);
-  gtk_container_add (GTK_CONTAINER (priv->window), priv->notebook);
-
-  /* Talking: We don't actually add it to the notebook yet, as it is only added
-   * as/when needed. Therefore we just create it, and ref it (so it will 
-   * survive reparenting.
-   */
+  /* Talking: This is the object that handles interaction with the user */
   priv->talking = moko_talking_new (priv->journal);
   g_object_ref (G_OBJECT (priv->talking));
   gtk_widget_show_all (priv->talking);
@@ -716,7 +678,20 @@
                     G_CALLBACK (on_talking_silence), (gpointer)dialer);
   g_signal_connect (G_OBJECT (priv->talking), "speaker_toggle",
                     G_CALLBACK (on_talking_speaker_toggle), (gpointer)dialer);
+
+  /* Create the window */
 #if 0
+  priv->window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
+  g_signal_connect (G_OBJECT (priv->window), "delete-event",
+                    (GCallback) gtk_widget_hide_on_delete, NULL);
+  gtk_window_set_title (GTK_WINDOW (priv->window), "Dialer");
+
+  /* Notebook */
+  priv->notebook = gtk_notebook_new ();
+  gtk_notebook_set_tab_pos (GTK_NOTEBOOK (priv->notebook), GTK_POS_BOTTOM);
+  gtk_container_add (GTK_CONTAINER (priv->window), priv->notebook);
+
+
   /* Keypad */
   priv->keypad = moko_keypad_new ();
   g_signal_connect (G_OBJECT (priv->keypad), "dial_number",

Modified: trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/phone-kit/moko-talking.c
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/phone-kit/moko-talking.c	2007-10-31 16:40:21 UTC (rev 3313)
+++ trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/phone-kit/moko-talking.c	2007-10-31 16:56:00 UTC (rev 3314)
@@ -25,7 +25,7 @@
 #include "moko-sound.h"
 #include "moko-talking.h"
 
-G_DEFINE_TYPE (MokoTalking, moko_talking, GTK_TYPE_VBOX)
+G_DEFINE_TYPE (MokoTalking, moko_talking, GTK_TYPE_WIDGET)
 
 #define MOKO_TALKING_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE(obj, \
         MOKO_TYPE_TALKING, MokoTalkingPrivate))
@@ -36,6 +36,8 @@
 {
   MokoJournal        *journal;
 
+  GtkWidget          *window;
+
   GtkWidget          *incoming_bar;
   GtkWidget          *main_bar;
 
@@ -138,10 +140,12 @@
   gtk_label_set_text (GTK_LABEL (priv->status), number);
   gtk_image_set_from_file (GTK_IMAGE (priv->person),
                            PKGDATADIR"/unkown.png");
-  g_source_remove (priv->timeout);
+  if (priv->timeout)
+    g_source_remove (priv->timeout);
   priv->timeout = g_timeout_add (1000, 
                                  (GSourceFunc)incoming_timeout,
                                  (gpointer)talking);
+  gtk_window_present (GTK_WINDOW (priv->window));
 }
 
 static gboolean
@@ -194,13 +198,14 @@
   else
     gtk_image_set_from_file (GTK_IMAGE (priv->person),
                              PKGDATADIR"/unkown.png");
-
-  g_source_remove (priv->timeout);
+  if (priv->timeout)
+    g_source_remove (priv->timeout);
   priv->timeout = g_timeout_add (1000, 
                                  (GSourceFunc)outgoing_timeout,
                                  (gpointer)talking);
 
   g_free (markup);
+  gtk_window_present (GTK_WINDOW (priv->window));
 }
 
 static gboolean
@@ -272,7 +277,8 @@
   /* We don't change the status or person widgets, as incoming call has already
    * set them for us.
    */
-  g_source_remove (priv->timeout);
+  if (priv->timeout)
+    g_source_remove (priv->timeout);
   priv->timeout = g_timeout_add (1000, 
                                  (GSourceFunc)talking_timeout,
                                  (gpointer)talking);
@@ -292,6 +298,7 @@
 on_reject_clicked (GtkToolButton *button, MokoTalking *talking)
 {
   g_source_remove (talking->priv->timeout);
+  gtk_widget_hide (talking->priv->window);
   g_signal_emit (G_OBJECT (talking), talking_signals[REJECT_CALL], 0);
 }
 
@@ -394,15 +401,17 @@
 moko_talking_init (MokoTalking *talking)
 {
   MokoTalkingPrivate *priv;
-  GtkWidget *toolbar, *image, *vbox, *hbox, *label, *align, *frame;
+  GtkWidget *toolbar, *image, *vbox, *hbox, *label, *align, *frame, *main_vbox;
   GtkWidget *duration;
   GtkToolItem *item;
   gint i;
 
   priv = talking->priv = MOKO_TALKING_GET_PRIVATE (talking);
+
+  main_vbox = gtk_vbox_new (FALSE, 0);
   
   priv->incoming_bar = toolbar = gtk_toolbar_new ();
-  gtk_box_pack_start (GTK_BOX (talking), toolbar, FALSE, FALSE, 0);
+  gtk_box_pack_start (GTK_BOX (main_vbox), toolbar, FALSE, FALSE, 0);
 
   item = gtk_tool_button_new_from_stock (MOKO_STOCK_CALL_ANSWER);
   gtk_tool_item_set_expand (item, TRUE);
@@ -425,7 +434,7 @@
 
   /* Outgoing call and talking share the same toolbar */
   priv->main_bar = toolbar = gtk_toolbar_new ();
-  gtk_box_pack_start (GTK_BOX (talking), toolbar, FALSE, FALSE, 0);
+  gtk_box_pack_start (GTK_BOX (main_vbox), toolbar, FALSE, FALSE, 0);
 
   item = gtk_toggle_tool_button_new_from_stock (MOKO_STOCK_SPEAKER);
   gtk_tool_item_set_expand (item, TRUE);
@@ -442,7 +451,7 @@
   /* The title label and image */
   vbox = gtk_vbox_new (FALSE, 0);
   gtk_container_set_border_width (GTK_CONTAINER (vbox), 12);
-  gtk_box_pack_start (GTK_BOX (talking), vbox, FALSE, FALSE, 0);
+  gtk_box_pack_start (GTK_BOX (main_vbox), vbox, FALSE, FALSE, 0);
   
   priv->title = label = gtk_label_new ("Incoming Call");
   gtk_misc_set_alignment (GTK_MISC (label), 0.5, 0.5);
@@ -460,7 +469,7 @@
 
   /* The status area */
   align = gtk_alignment_new (0.5, 0.5, 1, 0 );
-  gtk_box_pack_start (GTK_BOX (talking), align, TRUE, TRUE, 0);
+  gtk_box_pack_start (GTK_BOX (vbox), align, TRUE, TRUE, 0);
 
   frame = gtk_frame_new (NULL);
   gtk_container_set_border_width (GTK_CONTAINER (frame), 10);
@@ -508,6 +517,10 @@
 
   }
 
+  priv->window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
+  gtk_widget_show_all (main_vbox);
+  gtk_container_add (GTK_CONTAINER (priv->window), main_vbox);
+
 }
 
 GtkWidget*





More information about the commitlog mailing list