gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] r33510 - gnunet-gtk/src/conversation


From: gnunet
Subject: [GNUnet-SVN] r33510 - gnunet-gtk/src/conversation
Date: Wed, 4 Jun 2014 14:11:51 +0200

Author: grothoff
Date: 2014-06-04 14:11:51 +0200 (Wed, 04 Jun 2014)
New Revision: 33510

Modified:
   gnunet-gtk/src/conversation/gnunet-conversation-gtk_phone.c
Log:
-centralize logic for GUI updates more

Modified: gnunet-gtk/src/conversation/gnunet-conversation-gtk_phone.c
===================================================================
--- gnunet-gtk/src/conversation/gnunet-conversation-gtk_phone.c 2014-06-04 
11:49:18 UTC (rev 33509)
+++ gnunet-gtk/src/conversation/gnunet-conversation-gtk_phone.c 2014-06-04 
12:11:51 UTC (rev 33510)
@@ -712,6 +712,40 @@
 
 
 /**
+ * Update all aspects of the GUI (visibility and sensitivity
+ * of all buttons) based on the current state.
+ */
+static void
+update_gui ()
+{
+  if ( (NULL != active_in) ||
+       (NULL != active_out) )
+  {
+    /* in a call, show hangup/suspend buttons */
+    gtk_widget_show (b_suspend);
+    gtk_widget_show (b_hangup);
+    gtk_widget_hide (b_call);
+    gtk_widget_set_sensitive (b_hangup, TRUE);
+    gtk_widget_set_sensitive (b_suspend, TRUE);
+    gtk_widget_set_sensitive (GTK_WIDGET (address_entry), FALSE);
+  }
+  else
+  {
+    /* not in a call, show 'call' button */
+    gtk_widget_hide (b_suspend);
+    gtk_widget_hide (b_hangup);
+    gtk_widget_show (b_call);
+    gtk_widget_set_sensitive (b_hangup, FALSE);
+    gtk_widget_set_sensitive (b_suspend, FALSE);
+    gtk_widget_set_sensitive (GTK_WIDGET (address_entry), TRUE);
+    check_call_sensitivity ();
+  }
+  update_call_buttons (gtk_tree_view_get_selection (active_treeview));
+  do_status ();
+}
+
+
+/**
  * Set state of outgoing call.
  *
  * @param oc outgoing call to change state of
@@ -895,7 +929,7 @@
     GNUNET_break (valid);
     break;
   }
-  do_status();
+  update_gui ();
 }
 
 
@@ -1032,7 +1066,9 @@
   GCG_HISTORY_add (GCG_HISTORY_TYPE_INCOMING_ACCEPTED,
                    ic->caller_id,
                    ic->caller_num);
-  do_status ();
+  gtk_entry_set_text (address_entry,
+                      ic->caller_id);
+  update_gui ();
 }
 
 
@@ -1156,7 +1192,9 @@
     GCG_HISTORY_add (GCG_HISTORY_TYPE_RESUMED_LOCAL,
                      ic->caller_id,
                      ic->caller_num);
-    do_status ();
+    gtk_entry_set_text (address_entry,
+                        ic->caller_id);
+    update_gui ();
     return;
   }
   if (NULL != oc)
@@ -1169,7 +1207,9 @@
     GCG_HISTORY_add (GCG_HISTORY_TYPE_RESUMED_LOCAL,
                      oc->caller_id,
                      oc->caller_num);
-    do_status ();
+    gtk_entry_set_text (address_entry,
+                        active_out->caller_id);
+    update_gui ();
     return;
   }
   /* resume button should not have been sensitive! */
@@ -1230,14 +1270,7 @@
     set_outgoing_call_state (active_out,
                              os);
     active_out = NULL;
-    gtk_widget_hide (b_suspend);
-    gtk_widget_hide (b_hangup);
-    gtk_widget_show (b_call);
-    gtk_widget_set_sensitive (b_hangup, FALSE);
-    gtk_widget_set_sensitive (b_suspend, FALSE);
-    gtk_widget_set_sensitive (GTK_WIDGET (address_entry), TRUE);
-    check_call_sensitivity ();
-    do_status ();
+    update_gui ();
     return;
   }
   if (NULL != active_in)
@@ -1271,14 +1304,7 @@
     set_incoming_call_state (active_in,
                              is);
     active_in = NULL;
-    gtk_widget_hide (b_suspend);
-    gtk_widget_hide (b_hangup);
-    gtk_widget_show (b_call);
-    gtk_widget_set_sensitive (b_hangup, FALSE);
-    gtk_widget_set_sensitive (b_suspend, FALSE);
-    gtk_widget_set_sensitive (GTK_WIDGET (address_entry), TRUE);
-    check_call_sensitivity ();
-    do_status ();
+    update_gui ();
     return;
   }
   GNUNET_break (0);
@@ -1311,14 +1337,7 @@
                              OUT_STATE_NONE);
     destroy_out (active_out);
     active_out = NULL;
-    gtk_widget_hide (b_suspend);
-    gtk_widget_hide (b_hangup);
-    gtk_widget_show (b_call);
-    gtk_widget_set_sensitive (b_hangup, FALSE);
-    gtk_widget_set_sensitive (b_suspend, FALSE);
-    gtk_widget_set_sensitive (GTK_WIDGET (address_entry), TRUE);
-    check_call_sensitivity ();
-    do_status ();
+    update_gui ();
     return;
   }
   if (NULL != active_in)
@@ -1331,14 +1350,7 @@
                              IN_STATE_NONE);
     destroy_in (active_in);
     active_in = NULL;
-    gtk_widget_hide (b_suspend);
-    gtk_widget_hide (b_hangup);
-    gtk_widget_show (b_call);
-    gtk_widget_set_sensitive (b_hangup, FALSE);
-    gtk_widget_set_sensitive (b_suspend, FALSE);
-    gtk_widget_set_sensitive (GTK_WIDGET (address_entry), TRUE);
-    check_call_sensitivity ();
-    do_status ();
+    update_gui ();
     return;
   }
   GNUNET_break (0);
@@ -1391,13 +1403,7 @@
     oc->call = NULL;
     destroy_out (oc);
     active_out = NULL;
-    gtk_widget_hide (b_suspend);
-    gtk_widget_hide (b_hangup);
-    gtk_widget_show (b_call);
-    gtk_widget_set_sensitive (b_hangup, FALSE);
-    gtk_widget_set_sensitive (GTK_WIDGET (address_entry), TRUE);
-    check_call_sensitivity ();
-    do_status ();
+    update_gui ();
     break;
   case GNUNET_CONVERSATION_EC_CALL_HUNG_UP:
     GCG_HISTORY_add (GCG_HISTORY_TYPE_HANGUP,
@@ -1408,14 +1414,7 @@
     oc->call = NULL;
     destroy_out (oc);
     active_out = NULL;
-    gtk_widget_hide (b_suspend);
-    gtk_widget_hide (b_hangup);
-    gtk_widget_show (b_call);
-    gtk_widget_set_sensitive (b_hangup, FALSE);
-    gtk_widget_set_sensitive (b_suspend, FALSE);
-    gtk_widget_set_sensitive (GTK_WIDGET (address_entry), TRUE);
-    check_call_sensitivity ();
-    do_status ();
+    update_gui ();
     break;
   case GNUNET_CONVERSATION_EC_CALL_SUSPENDED:
     GCG_HISTORY_add (GCG_HISTORY_TYPE_SUSPEND_REMOTE,
@@ -1480,15 +1479,7 @@
     }
     set_outgoing_call_state (oc, os);
     if (OUT_STATE_CONNECTED == os)
-    {
       GNUNET_break (active_out == oc);
-      gtk_widget_show (b_suspend);
-      gtk_widget_show (b_hangup);
-      gtk_widget_hide (b_call);
-      gtk_widget_set_sensitive (b_hangup, TRUE);
-      gtk_widget_set_sensitive (b_suspend, TRUE);
-      gtk_widget_set_sensitive (GTK_WIDGET (address_entry), FALSE);
-    }
     do_status ();
     break;
   case GNUNET_CONVERSATION_EC_CALL_ERROR:
@@ -1500,14 +1491,7 @@
     if (active_out == oc)
       active_out = NULL;
     destroy_out (oc);
-    gtk_widget_hide (b_suspend);
-    gtk_widget_hide (b_hangup);
-    gtk_widget_show (b_call);
-    gtk_widget_set_sensitive (b_hangup, FALSE);
-    gtk_widget_set_sensitive (b_suspend, FALSE);
-    gtk_widget_set_sensitive (GTK_WIDGET (address_entry), TRUE);
-    check_call_sensitivity ();
-    do_status ();
+    update_gui ();
     break;
   }
 }
@@ -1579,15 +1563,7 @@
   oc->rr = gtk_tree_row_reference_new (GTK_TREE_MODEL (active_liststore),
                                       path);
   gtk_tree_path_free (path);
-  /* hide "call" button, make address entry insensitive;
-     show suspend button (but not sensitive),
-     show hangup button (and make sensitive) */
-  gtk_widget_hide (b_call);
-  gtk_widget_set_sensitive (GTK_WIDGET (address_entry), FALSE);
-  gtk_widget_show (b_suspend);
-  gtk_widget_show (b_hangup);
-  gtk_widget_set_sensitive (b_hangup, TRUE);
-  do_status ();
+  update_gui ();
 }
 
 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]