gnunet-svn
[Top][All Lists]
Advanced

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

[GNUnet-SVN] r33460 - in gnunet-gtk: contrib src/conversation


From: gnunet
Subject: [GNUnet-SVN] r33460 - in gnunet-gtk: contrib src/conversation
Date: Sun, 1 Jun 2014 17:16:50 +0200

Author: grothoff
Date: 2014-06-01 17:16:50 +0200 (Sun, 01 Jun 2014)
New Revision: 33460

Modified:
   gnunet-gtk/contrib/gnunet_conversation_gtk_main_window.glade
   gnunet-gtk/src/conversation/gnunet-conversation-gtk_contacts.c
   gnunet-gtk/src/conversation/gnunet-conversation-gtk_egos.c
   gnunet-gtk/src/conversation/gnunet-conversation-gtk_phone.c
   gnunet-gtk/src/conversation/gnunet-conversation-gtk_phone.h
   gnunet-gtk/src/conversation/gnunet-conversation-gtk_visibility.c
Log:
adding copy/paste button

Modified: gnunet-gtk/contrib/gnunet_conversation_gtk_main_window.glade
===================================================================
--- gnunet-gtk/contrib/gnunet_conversation_gtk_main_window.glade        
2014-06-01 13:30:32 UTC (rev 33459)
+++ gnunet-gtk/contrib/gnunet_conversation_gtk_main_window.glade        
2014-06-01 15:16:50 UTC (rev 33460)
@@ -3,22 +3,24 @@
   <!-- interface-requires gtk+ 3.0 -->
   <object class="GtkListStore" 
id="gnunet_conversation_gtk_active_calls_liststore">
     <columns>
-      <!-- column-name caller_id -->
+      <!-- column-name remote_user_name -->
       <column type="gchararray"/>
-      <!-- column-name caller -->
+      <!-- column-name incoming_call -->
       <column type="gpointer"/>
-      <!-- column-name caller_num -->
+      <!-- column-name number -->
       <column type="gint"/>
-      <!-- column-name caller_type -->
+      <!-- column-name type -->
       <column type="gint"/>
-      <!-- column-name caller_state -->
+      <!-- column-name in_call_state -->
       <column type="gint"/>
-      <!-- column-name call -->
+      <!-- column-name outgoing_call -->
       <column type="gpointer"/>
-      <!-- column-name call_state -->
+      <!-- column-name out_call_state -->
       <column type="gint"/>
-      <!-- column-name call_id -->
-      <column type="gint"/>
+      <!-- column-name state_name -->
+      <column type="gchararray"/>
+      <!-- column-name state_pixbuf -->
+      <column type="GdkPixbuf"/>
     </columns>
   </object>
   <object class="GtkListStore" id="gnunet_conversation_gtk_contacts_liststore">
@@ -108,6 +110,18 @@
                     <property name="visible">True</property>
                     <property name="can_focus">False</property>
                     <child>
+                      <object class="GtkCheckMenuItem" 
id="gnunet_conversation_gtk_view_caller_id_checkmenuitem">
+                        <property name="use_action_appearance">False</property>
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="label" translatable="yes">_Caller 
Identity</property>
+                        <property name="use_underline">True</property>
+                        <property name="active">True</property>
+                        <property name="draw_as_radio">True</property>
+                        <signal name="toggled" 
handler="gnunet_conversation_gtk_view_caller_id_checkmenuitem_toggled_cb" 
swapped="no"/>
+                      </object>
+                    </child>
+                    <child>
                       <object class="GtkCheckMenuItem" 
id="gnunet_conversation_gtk_view_history_checkmenuitem">
                         <property name="use_action_appearance">False</property>
                         <property name="visible">True</property>
@@ -168,33 +182,32 @@
           <object class="GtkPaned" id="gnunet_conversation_main_paned">
             <property name="visible">True</property>
             <property name="can_focus">True</property>
-            <property name="position">350</property>
-            <property name="position_set">True</property>
+            <property name="position">500</property>
             <child>
-              <object class="GtkFrame" id="gnunet_conversation_gtk_call_frame">
+              <object class="GtkBox" id="gnunet_converstation_main_left_vbox">
                 <property name="visible">True</property>
                 <property name="can_focus">False</property>
-                <property name="label_xalign">0</property>
-                <property name="shadow_type">none</property>
+                <property name="orientation">vertical</property>
                 <child>
-                  <object class="GtkAlignment" 
id="gnunet_conversation_gtk_call_alignment">
+                  <object class="GtkFrame" 
id="gnunet_conversation_gtk_caller_identity_frame">
                     <property name="visible">True</property>
                     <property name="can_focus">False</property>
-                    <property name="left_padding">12</property>
+                    <property name="label_xalign">0</property>
+                    <property name="shadow_type">none</property>
                     <child>
-                      <object class="GtkBox" 
id="gnunet_conversation_gtk_call_vbox">
+                      <object class="GtkAlignment" 
id="gnunet_conversation_gtk_caller_identity_alignment">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
-                        <property name="orientation">vertical</property>
+                        <property name="left_padding">12</property>
                         <child>
                           <object class="GtkBox" 
id="gnunet_conversation_gtk_outgoing_ego_chooser_hbox">
                             <property name="visible">True</property>
                             <property name="can_focus">False</property>
                             <child>
-                              <object class="GtkLabel" id="ego_label">
+                              <object class="GtkLabel" 
id="gnunet_conversation_gtk_ego_label_label">
                                 <property name="visible">True</property>
                                 <property name="can_focus">False</property>
-                                <property name="label" 
translatable="yes">Ego:</property>
+                                <property name="label" 
translatable="yes">Label:</property>
                               </object>
                               <packing>
                                 <property name="expand">False</property>
@@ -204,32 +217,33 @@
                               </packing>
                             </child>
                             <child>
-                              <object class="GtkComboBox" 
id="gnunet_conversation_gtk_ego_combobox">
+                              <object class="GtkComboBoxText" 
id="gnunet_conversation_gtk_ego_label_comboboxtext">
                                 <property name="visible">True</property>
                                 <property name="can_focus">False</property>
-                                <property 
name="model">gnunet_conversation_gtk_ego_liststore</property>
-                                <signal name="changed" 
handler="gnunet_conversation_gtk_ego_combobox_changed_cb" swapped="no"/>
-                                <child>
-                                  <object class="GtkCellRendererText" 
id="gnunet_conversation_gtk_outgoing_zone_ego_name_cellrenderertext"/>
-                                  <attributes>
-                                    <attribute name="text">0</attribute>
-                                  </attributes>
+                                <property name="has_entry">True</property>
+                                <property name="entry_text_column">0</property>
+                                <property name="id_column">1</property>
+                                <items>
+                                  <item translatable="yes">phone</item>
+                                </items>
+                                <child internal-child="entry">
+                                  <object class="GtkEntry" 
id="comboboxtext-entry">
+                                    <property name="can_focus">False</property>
+                                  </object>
                                 </child>
                               </object>
                               <packing>
-                                <property name="expand">True</property>
+                                <property name="expand">False</property>
                                 <property name="fill">True</property>
                                 <property name="padding">5</property>
                                 <property name="position">1</property>
                               </packing>
                             </child>
                             <child>
-                              <object class="GtkImage" 
id="GNUNET_GTK_status_icon">
+                              <object class="GtkLabel" 
id="gnunet_conversation_gtk_ego_label">
                                 <property name="visible">True</property>
                                 <property name="can_focus">False</property>
-                                <property name="tooltip_text" 
translatable="yes">Status indicator</property>
-                                <property name="hexpand">True</property>
-                                <property name="icon_name">bluefish</property>
+                                <property name="label" 
translatable="yes">Ego:</property>
                               </object>
                               <packing>
                                 <property name="expand">False</property>
@@ -238,216 +252,122 @@
                                 <property name="position">2</property>
                               </packing>
                             </child>
-                          </object>
-                          <packing>
-                            <property name="expand">False</property>
-                            <property name="fill">True</property>
-                            <property name="position">0</property>
-                          </packing>
-                        </child>
-                        <child>
-                          <object class="GtkBox" 
id="gnunet_conversation_gtk_address_and_action_button_hbox">
-                            <property name="visible">True</property>
-                            <property name="can_focus">False</property>
                             <child>
-                              <object class="GtkLabel" 
id="gnunet_conversation_address_label">
+                              <object class="GtkComboBox" 
id="gnunet_conversation_gtk_ego_combobox">
                                 <property name="visible">True</property>
                                 <property name="can_focus">False</property>
-                                <property name="label" 
translatable="yes">Target:</property>
+                                <property 
name="model">gnunet_conversation_gtk_ego_liststore</property>
+                                <signal name="changed" 
handler="gnunet_conversation_gtk_ego_combobox_changed_cb" swapped="no"/>
+                                <child>
+                                  <object class="GtkCellRendererText" 
id="gnunet_conversation_gtk_outgoing_zone_ego_name_cellrenderertext"/>
+                                  <attributes>
+                                    <attribute name="text">0</attribute>
+                                  </attributes>
+                                </child>
                               </object>
                               <packing>
-                                <property name="expand">False</property>
-                                <property name="fill">False</property>
-                                <property name="padding">5</property>
-                                <property name="position">0</property>
-                              </packing>
-                            </child>
-                            <child>
-                              <object class="GtkEntry" 
id="gnunet_conversation_gtk_address_entry">
-                                <property name="visible">True</property>
-                                <property name="can_focus">True</property>
-                                <property name="invisible_char">•</property>
-                                <signal name="changed" 
handler="gnunet_conversation_gtk_address_entry_changed_cb" swapped="no"/>
-                              </object>
-                              <packing>
                                 <property name="expand">True</property>
                                 <property name="fill">True</property>
                                 <property name="padding">5</property>
-                                <property name="position">1</property>
+                                <property name="position">3</property>
                               </packing>
                             </child>
                             <child>
-                              <object class="GtkButton" 
id="gnunet_conversation_gtk_call_button">
-                                <property name="label">gtk-connect</property>
+                              <object class="GtkButton" 
id="gnunet_conversation_gtk_ego_copy_button">
+                                <property name="label">gtk-copy</property>
                                 <property 
name="use_action_appearance">False</property>
                                 <property name="visible">True</property>
                                 <property name="can_focus">True</property>
                                 <property 
name="receives_default">True</property>
                                 <property 
name="use_action_appearance">False</property>
-                                <property name="use_underline">True</property>
                                 <property name="use_stock">True</property>
-                                <signal name="clicked" 
handler="gnunet_conversation_gtk_call_button_clicked_cb" swapped="no"/>
+                                <signal name="clicked" 
handler="gnunet_conversation_gtk_ego_copy_button_clicked_cb" swapped="no"/>
                               </object>
                               <packing>
                                 <property name="expand">False</property>
                                 <property name="fill">False</property>
-                                <property name="padding">5</property>
-                                <property name="position">2</property>
-                              </packing>
-                            </child>
-                            <child>
-                              <object class="GtkButton" 
id="GNUNET_GTK_conversation_suspend_button">
-                                <property 
name="label">gtk-media-pause</property>
-                                <property 
name="use_action_appearance">False</property>
-                                <property name="sensitive">False</property>
-                                <property name="can_focus">True</property>
-                                <property 
name="receives_default">True</property>
-                                <property 
name="use_action_appearance">False</property>
-                                <property name="use_stock">True</property>
-                                <signal name="clicked" 
handler="GNUNET_CONVERSATION_GTK_on_pause_clicked" swapped="no"/>
-                              </object>
-                              <packing>
-                                <property name="expand">False</property>
-                                <property name="fill">False</property>
-                                <property name="padding">5</property>
-                                <property name="position">3</property>
-                              </packing>
-                            </child>
-                            <child>
-                              <object class="GtkButton" 
id="gnunet_conversation_gtk_hangup_button">
-                                <property 
name="label">gtk-disconnect</property>
-                                <property 
name="use_action_appearance">False</property>
-                                <property name="sensitive">False</property>
-                                <property name="can_focus">True</property>
-                                <property 
name="receives_default">True</property>
-                                <property 
name="use_action_appearance">False</property>
-                                <property name="use_stock">True</property>
-                                <signal name="clicked" 
handler="GNUNET_CONVERSATION_GTK_on_hangup_clicked" swapped="no"/>
-                              </object>
-                              <packing>
-                                <property name="expand">False</property>
-                                <property name="fill">False</property>
-                                <property name="padding">5</property>
                                 <property name="position">4</property>
                               </packing>
                             </child>
                           </object>
-                          <packing>
-                            <property name="expand">False</property>
-                            <property name="fill">True</property>
-                            <property name="position">1</property>
-                          </packing>
                         </child>
+                      </object>
+                    </child>
+                    <child type="label">
+                      <object class="GtkLabel" 
id="gnunet_conversation_gtk_ego_frame_label">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="label" translatable="yes">Caller 
Identity</property>
+                        <property name="use_markup">True</property>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">True</property>
+                    <property name="position">0</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkFrame" 
id="gnunet_conversation_gtk_call_frame">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="label_xalign">0</property>
+                    <property name="shadow_type">none</property>
+                    <child>
+                      <object class="GtkAlignment" 
id="gnunet_conversation_gtk_call_alignment">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="left_padding">12</property>
                         <child>
-                          <object class="GtkBox" 
id="gnunet_conversation_gtk_active_calls_hbox">
+                          <object class="GtkBox" 
id="gnunet_conversation_gtk_call_vbox">
                             <property name="visible">True</property>
                             <property name="can_focus">False</property>
+                            <property name="orientation">vertical</property>
                             <child>
-                              <object class="GtkScrolledWindow" 
id="gnunet_conversation_gtk_active_calls_scrolledwindow">
+                              <object class="GtkBox" 
id="gnunet_conversation_gtk_address_and_action_button_hbox">
                                 <property name="visible">True</property>
-                                <property name="can_focus">True</property>
-                                <property name="shadow_type">in</property>
+                                <property name="can_focus">False</property>
                                 <child>
-                                  <object class="GtkTreeView" 
id="gnunet_conversation_gtk_active_calls_treeview">
+                                  <object class="GtkLabel" 
id="gnunet_conversation_address_label">
                                     <property name="visible">True</property>
-                                    <property name="can_focus">True</property>
-                                    <property 
name="model">gnunet_conversation_gtk_active_calls_liststore</property>
-                                    <property 
name="headers_clickable">False</property>
-                                    <property 
name="enable_search">False</property>
-                                    <property name="search_column">0</property>
-                                    <child internal-child="selection">
-                                      <object class="GtkTreeSelection" 
id="gnunet_conversation_gtk_active_calls_treeview_selection">
-                                        <signal name="changed" 
handler="gnunet_conversation_gtk_active_calls_treeview_selection_changed_cb" 
swapped="no"/>
-                                      </object>
-                                    </child>
-                                    <child>
-                                      <object class="GtkTreeViewColumn" 
id="caller_numColumn">
-                                        <property name="title" 
translatable="yes">#</property>
-                                        <child>
-                                          <object class="GtkCellRendererText" 
id="GNUNET_CONVERSATION_GTK_active_calls_num">
-                                            <property 
name="background_gdk">#000000000000</property>
-                                            <property 
name="font">Normal</property>
-                                            <property 
name="foreground_gdk">#000000000000</property>
-                                            <property 
name="background_rgba">rgba(0,0,0,0)</property>
-                                            <property 
name="foreground_rgba">rgba(0,0,0,0)</property>
-                                          </object>
-                                          <attributes>
-                                            <attribute 
name="text">2</attribute>
-                                          </attributes>
-                                        </child>
-                                      </object>
-                                    </child>
-                                    <child>
-                                      <object class="GtkTreeViewColumn" 
id="caller_stateColumn">
-                                        <property name="title" 
translatable="yes">state</property>
-                                        <child>
-                                          <object class="GtkCellRendererText" 
id="GNUNET_CONVERSATION_GTK_active_calls_state"/>
-                                          <attributes>
-                                            <attribute 
name="markup">4</attribute>
-                                            <attribute 
name="text">4</attribute>
-                                          </attributes>
-                                        </child>
-                                      </object>
-                                    </child>
-                                    <child>
-                                      <object class="GtkTreeViewColumn" 
id="caller_idColumn">
-                                        <property name="title" 
translatable="yes">Caller ID</property>
-                                        <child>
-                                          <object class="GtkCellRendererText" 
id="GNUNET_CONVERSATION_GTK_active_calls_id"/>
-                                          <attributes>
-                                            <attribute 
name="text">0</attribute>
-                                          </attributes>
-                                        </child>
-                                      </object>
-                                    </child>
+                                    <property name="can_focus">False</property>
+                                    <property name="label" 
translatable="yes">Target:</property>
                                   </object>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="fill">False</property>
+                                    <property name="padding">5</property>
+                                    <property name="position">0</property>
+                                  </packing>
                                 </child>
-                              </object>
-                              <packing>
-                                <property name="expand">True</property>
-                                <property name="fill">True</property>
-                                <property name="position">0</property>
-                              </packing>
-                            </child>
-                            <child>
-                              <object class="GtkButtonBox" 
id="gnunet_conversation_gtk_active_call_list_buttons_vbox">
-                                <property name="visible">True</property>
-                                <property name="can_focus">False</property>
-                                <property name="border_width">2</property>
-                                <property 
name="orientation">vertical</property>
-                                <property name="layout_style">start</property>
                                 <child>
-                                  <placeholder/>
-                                </child>
-                                <child>
-                                  <object class="GtkButton" 
id="gnunet_conversation_gtk_add_contact_button">
-                                    <property name="label" 
translatable="yes">&gt; contact</property>
-                                    <property 
name="use_action_appearance">False</property>
+                                  <object class="GtkEntry" 
id="gnunet_conversation_gtk_address_entry">
                                     <property name="visible">True</property>
-                                    <property name="sensitive">False</property>
                                     <property name="can_focus">True</property>
-                                    <property 
name="receives_default">True</property>
-                                    <property 
name="use_action_appearance">False</property>
-                                    <property 
name="xalign">0.4699999988079071</property>
-                                    <signal name="clicked" 
handler="GNUNET_CONVERSATION_GTK_use_current_button_clicked" swapped="no"/>
+                                    <property 
name="invisible_char">•</property>
+                                    <property 
name="invisible_char_set">True</property>
+                                    <signal name="changed" 
handler="gnunet_conversation_gtk_address_entry_changed_cb" swapped="no"/>
                                   </object>
                                   <packing>
-                                    <property name="expand">False</property>
-                                    <property name="fill">False</property>
+                                    <property name="expand">True</property>
+                                    <property name="fill">True</property>
                                     <property name="padding">5</property>
                                     <property name="position">1</property>
                                   </packing>
                                 </child>
                                 <child>
-                                  <object class="GtkButton" 
id="gnunet_conversation_gtk_accept_button">
-                                    <property name="label" 
translatable="yes">accept</property>
+                                  <object class="GtkButton" 
id="gnunet_conversation_gtk_call_button">
+                                    <property 
name="label">gtk-connect</property>
                                     <property 
name="use_action_appearance">False</property>
                                     <property name="visible">True</property>
-                                    <property name="sensitive">False</property>
                                     <property name="can_focus">True</property>
                                     <property 
name="receives_default">True</property>
                                     <property 
name="use_action_appearance">False</property>
-                                    <signal name="clicked" 
handler="GNUNET_CONVERSATION_GTK_on_accept_clicked" swapped="no"/>
+                                    <property 
name="use_underline">True</property>
+                                    <property name="use_stock">True</property>
+                                    <property 
name="image_position">top</property>
+                                    <signal name="clicked" 
handler="gnunet_conversation_gtk_call_button_clicked_cb" swapped="no"/>
                                   </object>
                                   <packing>
                                     <property name="expand">False</property>
@@ -457,15 +377,16 @@
                                   </packing>
                                 </child>
                                 <child>
-                                  <object class="GtkButton" 
id="gnunet_conversation_gtk_refuse_button">
-                                    <property name="label" 
translatable="yes">refuse</property>
+                                  <object class="GtkButton" 
id="GNUNET_GTK_conversation_suspend_button">
+                                    <property 
name="label">gtk-media-pause</property>
                                     <property 
name="use_action_appearance">False</property>
-                                    <property name="visible">True</property>
                                     <property name="sensitive">False</property>
                                     <property name="can_focus">True</property>
                                     <property 
name="receives_default">True</property>
                                     <property 
name="use_action_appearance">False</property>
-                                    <signal name="clicked" 
handler="GNUNET_CONVERSATION_GTK_on_resume_clicked" swapped="no"/>
+                                    <property name="use_stock">True</property>
+                                    <property 
name="image_position">top</property>
+                                    <signal name="clicked" 
handler="GNUNET_CONVERSATION_GTK_on_pause_clicked" swapped="no"/>
                                   </object>
                                   <packing>
                                     <property name="expand">False</property>
@@ -475,14 +396,16 @@
                                   </packing>
                                 </child>
                                 <child>
-                                  <object class="GtkButton" 
id="gnunet_conversation_gtk_resume_button">
-                                    <property name="label" 
translatable="yes">resume</property>
+                                  <object class="GtkButton" 
id="gnunet_conversation_gtk_hangup_button">
+                                    <property 
name="label">gtk-disconnect</property>
                                     <property 
name="use_action_appearance">False</property>
-                                    <property name="visible">True</property>
                                     <property name="sensitive">False</property>
                                     <property name="can_focus">True</property>
                                     <property 
name="receives_default">True</property>
                                     <property 
name="use_action_appearance">False</property>
+                                    <property name="use_stock">True</property>
+                                    <property 
name="image_position">top</property>
+                                    <signal name="clicked" 
handler="GNUNET_CONVERSATION_GTK_on_hangup_clicked" swapped="no"/>
                                   </object>
                                   <packing>
                                     <property name="expand">False</property>
@@ -496,27 +419,217 @@
                                 <property name="expand">False</property>
                                 <property name="fill">False</property>
                                 <property name="padding">5</property>
+                                <property name="position">0</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkBox" 
id="gnunet_conversation_gtk_active_calls_hbox">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <child>
+                                  <object class="GtkScrolledWindow" 
id="gnunet_conversation_gtk_active_calls_scrolledwindow">
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">True</property>
+                                    <property name="shadow_type">in</property>
+                                    <child>
+                                      <object class="GtkTreeView" 
id="gnunet_conversation_gtk_active_calls_treeview">
+                                        <property 
name="visible">True</property>
+                                        <property 
name="can_focus">True</property>
+                                        <property 
name="model">gnunet_conversation_gtk_active_calls_liststore</property>
+                                        <property 
name="enable_search">False</property>
+                                        <property 
name="search_column">0</property>
+                                        <child internal-child="selection">
+                                          <object class="GtkTreeSelection" 
id="treeview-selection5"/>
+                                        </child>
+                                        <child>
+                                          <object class="GtkTreeViewColumn" 
id="caller_numColumn">
+                                            <property name="title">#</property>
+                                            <property 
name="clickable">True</property>
+                                            <property 
name="reorderable">True</property>
+                                            <property 
name="sort_indicator">True</property>
+                                            <property 
name="sort_column_id">2</property>
+                                            <child>
+                                              <object 
class="GtkCellRendererText" id="GNUNET_CONVERSATION_GTK_active_calls_num">
+                                                <property 
name="background_gdk">#000000000000</property>
+                                                <property 
name="font">Normal</property>
+                                                <property 
name="foreground_gdk">#000000000000</property>
+                                                <property 
name="background_rgba">rgba(0,0,0,0)</property>
+                                                <property 
name="foreground_rgba">rgba(0,0,0,0)</property>
+                                              </object>
+                                              <attributes>
+                                                <attribute 
name="text">2</attribute>
+                                              </attributes>
+                                            </child>
+                                          </object>
+                                        </child>
+                                        <child>
+                                          <object class="GtkTreeViewColumn" 
id="caller_stateColumn">
+                                            <property name="title" 
translatable="yes">State</property>
+                                            <property 
name="clickable">True</property>
+                                            <property 
name="reorderable">True</property>
+                                            <property 
name="sort_indicator">True</property>
+                                            <property 
name="sort_column_id">7</property>
+                                            <child>
+                                              <object 
class="GtkCellRendererText" id="GNUNET_CONVERSATION_GTK_active_calls_state"/>
+                                              <attributes>
+                                                <attribute 
name="text">7</attribute>
+                                              </attributes>
+                                            </child>
+                                          </object>
+                                        </child>
+                                        <child>
+                                          <object class="GtkTreeViewColumn" 
id="caller_idColumn">
+                                            <property name="title" 
translatable="yes">Caller ID</property>
+                                            <property 
name="expand">True</property>
+                                            <property 
name="clickable">True</property>
+                                            <property 
name="reorderable">True</property>
+                                            <property 
name="sort_indicator">True</property>
+                                            <property 
name="sort_column_id">0</property>
+                                            <child>
+                                              <object 
class="GtkCellRendererText" id="GNUNET_CONVERSATION_GTK_active_calls_id"/>
+                                              <attributes>
+                                                <attribute 
name="text">0</attribute>
+                                              </attributes>
+                                            </child>
+                                          </object>
+                                        </child>
+                                      </object>
+                                    </child>
+                                  </object>
+                                  <packing>
+                                    <property name="expand">True</property>
+                                    <property name="fill">True</property>
+                                    <property name="position">0</property>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <object class="GtkButtonBox" 
id="gnunet_conversation_gtk_active_call_list_buttons_vbox">
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">False</property>
+                                    <property name="border_width">2</property>
+                                    <property 
name="orientation">vertical</property>
+                                    <property 
name="layout_style">start</property>
+                                    <child>
+                                      <object class="GtkImage" 
id="GNUNET_GTK_status_icon">
+                                        <property 
name="visible">True</property>
+                                        <property 
name="can_focus">False</property>
+                                        <property name="tooltip_text" 
translatable="yes">Status indicator</property>
+                                        <property 
name="hexpand">True</property>
+                                        <property 
name="icon_name">bluefish</property>
+                                      </object>
+                                      <packing>
+                                        <property 
name="expand">False</property>
+                                        <property name="fill">False</property>
+                                        <property name="padding">5</property>
+                                        <property name="position">0</property>
+                                      </packing>
+                                    </child>
+                                    <child>
+                                      <object class="GtkButton" 
id="gnunet_conversation_gtk_add_contact_button">
+                                        <property name="label" 
translatable="yes">&gt; contact</property>
+                                        <property 
name="use_action_appearance">False</property>
+                                        <property 
name="visible">True</property>
+                                        <property 
name="sensitive">False</property>
+                                        <property 
name="can_focus">True</property>
+                                        <property 
name="receives_default">True</property>
+                                        <property 
name="use_action_appearance">False</property>
+                                        <property 
name="xalign">0.4699999988079071</property>
+                                        <signal name="clicked" 
handler="GNUNET_CONVERSATION_GTK_use_current_button_clicked" swapped="no"/>
+                                      </object>
+                                      <packing>
+                                        <property 
name="expand">False</property>
+                                        <property name="fill">False</property>
+                                        <property name="padding">5</property>
+                                        <property name="position">1</property>
+                                      </packing>
+                                    </child>
+                                    <child>
+                                      <object class="GtkButton" 
id="gnunet_conversation_gtk_accept_button">
+                                        <property name="label" 
translatable="yes">accept</property>
+                                        <property 
name="use_action_appearance">False</property>
+                                        <property 
name="visible">True</property>
+                                        <property 
name="sensitive">False</property>
+                                        <property 
name="can_focus">True</property>
+                                        <property 
name="receives_default">True</property>
+                                        <property 
name="use_action_appearance">False</property>
+                                        <signal name="clicked" 
handler="GNUNET_CONVERSATION_GTK_on_accept_clicked" swapped="no"/>
+                                      </object>
+                                      <packing>
+                                        <property 
name="expand">False</property>
+                                        <property name="fill">False</property>
+                                        <property name="padding">5</property>
+                                        <property name="position">2</property>
+                                      </packing>
+                                    </child>
+                                    <child>
+                                      <object class="GtkButton" 
id="gnunet_conversation_gtk_refuse_button">
+                                        <property name="label" 
translatable="yes">refuse</property>
+                                        <property 
name="use_action_appearance">False</property>
+                                        <property 
name="visible">True</property>
+                                        <property 
name="sensitive">False</property>
+                                        <property 
name="can_focus">True</property>
+                                        <property 
name="receives_default">True</property>
+                                        <property 
name="use_action_appearance">False</property>
+                                        <signal name="clicked" 
handler="GNUNET_CONVERSATION_GTK_on_resume_clicked" swapped="no"/>
+                                      </object>
+                                      <packing>
+                                        <property 
name="expand">False</property>
+                                        <property name="fill">False</property>
+                                        <property name="padding">5</property>
+                                        <property name="position">3</property>
+                                      </packing>
+                                    </child>
+                                    <child>
+                                      <object class="GtkButton" 
id="gnunet_conversation_gtk_resume_button">
+                                        <property name="label" 
translatable="yes">resume</property>
+                                        <property 
name="use_action_appearance">False</property>
+                                        <property 
name="visible">True</property>
+                                        <property 
name="sensitive">False</property>
+                                        <property 
name="can_focus">True</property>
+                                        <property 
name="receives_default">True</property>
+                                        <property 
name="use_action_appearance">False</property>
+                                      </object>
+                                      <packing>
+                                        <property 
name="expand">False</property>
+                                        <property name="fill">False</property>
+                                        <property name="padding">5</property>
+                                        <property name="position">4</property>
+                                      </packing>
+                                    </child>
+                                  </object>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="fill">False</property>
+                                    <property name="padding">5</property>
+                                    <property name="position">1</property>
+                                  </packing>
+                                </child>
+                              </object>
+                              <packing>
+                                <property name="expand">True</property>
+                                <property name="fill">True</property>
+                                <property name="padding">5</property>
                                 <property name="position">1</property>
                               </packing>
                             </child>
                           </object>
-                          <packing>
-                            <property name="expand">True</property>
-                            <property name="fill">True</property>
-                            <property name="position">2</property>
-                          </packing>
                         </child>
                       </object>
                     </child>
+                    <child type="label">
+                      <object class="GtkLabel" 
id="gnunet_conversation_gtk_call_label">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="label" translatable="yes">Call 
Information</property>
+                      </object>
+                    </child>
                   </object>
+                  <packing>
+                    <property name="expand">True</property>
+                    <property name="fill">True</property>
+                    <property name="position">1</property>
+                  </packing>
                 </child>
-                <child type="label">
-                  <object class="GtkLabel" 
id="gnunet_conversation_gtk_call_label">
-                    <property name="visible">True</property>
-                    <property name="can_focus">False</property>
-                    <property name="label" translatable="yes">Call 
Information</property>
-                  </object>
-                </child>
               </object>
               <packing>
                 <property name="resize">False</property>
@@ -577,6 +690,23 @@
                                 <property name="position">1</property>
                               </packing>
                             </child>
+                            <child>
+                              <object class="GtkButton" 
id="gnunet_conversation_gtk_contacts_paste_button">
+                                <property name="label">gtk-paste</property>
+                                <property 
name="use_action_appearance">False</property>
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property 
name="receives_default">True</property>
+                                <property 
name="use_action_appearance">False</property>
+                                <property name="use_stock">True</property>
+                                <signal name="clicked" 
handler="gnunet_conversation_gtk_contacts_paste_button_clicked_cb" 
swapped="no"/>
+                              </object>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="fill">True</property>
+                                <property name="position">2</property>
+                              </packing>
+                            </child>
                           </object>
                           <packing>
                             <property name="expand">False</property>
@@ -612,9 +742,7 @@
                                 <property name="title" 
translatable="yes">Name</property>
                                 <property name="expand">True</property>
                                 <child>
-                                  <object class="GtkCellRendererText" 
id="gnunet_conversation_gtk_contact_list_value_renderer">
-                                    <signal name="edited" 
handler="gnunet_conversation_gtk_contact_list_value_renderer_edited_cb" 
swapped="no"/>
-                                  </object>
+                                  <object class="GtkCellRendererText" 
id="gnunet_conversation_gtk_contact_list_value_renderer"/>
                                   <attributes>
                                     <attribute name="text">0</attribute>
                                   </attributes>

Modified: gnunet-gtk/src/conversation/gnunet-conversation-gtk_contacts.c
===================================================================
--- gnunet-gtk/src/conversation/gnunet-conversation-gtk_contacts.c      
2014-06-01 13:30:32 UTC (rev 33459)
+++ gnunet-gtk/src/conversation/gnunet-conversation-gtk_contacts.c      
2014-06-01 15:16:50 UTC (rev 33460)
@@ -88,6 +88,7 @@
   gchar *type;
   GtkTreeIter iter;
   gchar *name;
+  GtkEntry *address_entry;
 
   gtk_tree_model_get_iter (contacts_treemodel,
                            &iter,
@@ -111,18 +112,14 @@
   }
   g_free (name);
   g_free (type);
-  GSC_PHONE_make_call (address);
+  address_entry = GTK_ENTRY (GCG_get_main_window_object
+                             ("gnunet_conversation_gtk_address_entry"));
+  gtk_entry_set_text (address_entry,
+                      address);
   GNUNET_free (address);
 }
 
 
-void
-gnunet_conversation_gtk_contact_list_value_renderer_edited_cb ()
-{
-  GNUNET_break (0); // not implemented
-}
-
-
 /**
  * Process a record that was stored or modified the namestore by
  * adding/modifying/removing it in the liststore.
@@ -274,6 +271,21 @@
 
 
 /**
+ * User clicked the "paste" button.  Copy address information
+ * from the clipboard into our current zone / address book.
+ *
+ * @param button the button
+ * @param user_data builder (unused)
+ */
+void
+gnunet_conversation_gtk_contacts_paste_button_clicked_cb (GtkButton *button,
+                                                         gpointer user_data)
+{
+  GNUNET_break (0);
+}
+
+
+/**
  * Initialize the contact list
  */
 void

Modified: gnunet-gtk/src/conversation/gnunet-conversation-gtk_egos.c
===================================================================
--- gnunet-gtk/src/conversation/gnunet-conversation-gtk_egos.c  2014-06-01 
13:30:32 UTC (rev 33459)
+++ gnunet-gtk/src/conversation/gnunet-conversation-gtk_egos.c  2014-06-01 
15:16:50 UTC (rev 33460)
@@ -163,6 +163,21 @@
 
 
 /**
+ * User clicked the "copy" button.  Copy address information
+ * for our current phone to the clipboard.
+ *
+ * @param button the button
+ * @param user_data builder (unused)
+ */
+void
+gnunet_conversation_gtk_ego_copy_button_clicked_cb (GtkButton *button,
+                                                   gpointer user_data)
+{
+  GNUNET_break (0);
+}
+
+
+/**
  * Initialize the ego list
  *
  * @param ego_name default ego to pre-select

Modified: gnunet-gtk/src/conversation/gnunet-conversation-gtk_phone.c
===================================================================
--- gnunet-gtk/src/conversation/gnunet-conversation-gtk_phone.c 2014-06-01 
13:30:32 UTC (rev 33459)
+++ gnunet-gtk/src/conversation/gnunet-conversation-gtk_phone.c 2014-06-01 
15:16:50 UTC (rev 33460)
@@ -38,46 +38,51 @@
 enum ActiveCallsTreeViewColumns
 {
   /**
-   * A `gchar *`
+   * A `gchar *` giving the name of the remote user.
    */
-  GCG_PHONE_LS_CALLER_ID,
+  GCG_PHONE_LS_REMOTE_USER_NAME,
 
   /**
-   * A `struct IncomingCall *`
+   * A `struct IncomingCall *` for incoming calls, otherwise NULL.
    */
-  GCG_PHONE_LS_CALLER,
+  GCG_PHONE_LS_INCOMING_CALL,
 
   /**
-   * A `gint`.
+   * A `gint` uniquely identifying the call to the user.
    */
-  GCG_PHONE_LS_CALLER_NUM,
+  GCG_PHONE_LS_NUMBER,
 
   /**
-   * A `gint` for a `enum TypeOfConversation` (FIXME: remove?)
+   * A `gint` for a `enum TypeOfConversation`.
    */
   GCG_PHONE_LS_TYPE,
 
   /**
-   * A `gint` for a `enum InCallState` (FIXME: replace with char *!)
+   * A `gint` for a `enum InCallState`.
    */
-  GCG_PHONE_LS_CALLER_STATE,
+  GCG_PHONE_LS_IN_CALL_STATE,
 
   /**
-   * A `struct OutgoingCall *`.
+   * A `struct OutgoingCall *` for outgoing calls, otherwise NULL.
    */
-  GCG_PHONE_LS_CALL,
+  GCG_PHONE_LS_OUTGOING_CALL,
 
   /**
-   * A `gint` for a `enum OutCallState` (FIXME: replace with char *,
-   * combine with #GCG_PHONE_LS_CALLER_STATE).
+   * A `gint` for a `enum OutCallState`.
    */
-  GCG_PHONE_LS_CALL_STATE,
+  GCG_PHONE_LS_OUT_CALL_STATE,
 
   /**
-   * A `gint`.  FIXME: combine with #GCG_PHONE_LS_CALLER_NUM!
+   * A `gchararray` describing the state of the call.
    */
-  GCG_PHONE_LS_CALL_NUM
+  GCG_PHONE_LS_STATE_NAME,
 
+  /**
+   * A `GdkPixbuf` visualizing the state of the call.
+   * Not yet used.
+   */
+  GCG_PHONE_LS_STATE_PIXBUF
+
 };
 
 
@@ -158,7 +163,7 @@
   /**
    * This phone call is currently active.
    */
-  OUT_STATE_ACTIVE,
+  OUT_STATE_CONNECTED,
 
   /**
    * This phone call is currently suspended by local.
@@ -202,7 +207,7 @@
   /**
    * Unique number of the caller.
    */
-  unsigned int caller_num;
+  guint caller_num;
 
   /**
    * State for this call.
@@ -236,7 +241,7 @@
   /**
    * Unique number of the caller.
    */
-  unsigned int caller_num;
+  guint caller_num;
 
   /**
    * State for this call.
@@ -273,16 +278,11 @@
 
 
 /**
- * Counts the number of incoming calls we have had so far.
+ * Counts the number of incoming or outgoing calls we have had so far.
  */
-static unsigned int caller_num_gen;
+static guint caller_num_gen;
 
 /**
- * Unique number of call (outgoing)
- */
-static unsigned int call_counter;
-
-/**
  * Number of incoming calls that are currently ringing.
  */
 static unsigned int in_ring_counter;
@@ -340,6 +340,70 @@
 
 
 /**
+ * Convert in call state to human readable string.
+ *
+ * @param is state to convert
+ * @return human readable description
+ */
+static const char *
+in_call_state_to_string (enum InCallState is)
+{
+  switch (is)
+  {
+  case IN_STATE_NONE:
+    return _("none");
+  case IN_STATE_RINGING:
+    return _("ringing");
+  case IN_STATE_CONNECTED:
+    return _("connected");
+  case IN_STATE_SUSPENDED_LOCAL:
+    return _("suspended");
+  case IN_STATE_SUSPENDED_REMOTE:
+    return _("on hold");
+  case IN_STATE_SUSPENDED_BOTH:
+    return _("suspended and on hold");
+  default:
+    GNUNET_break (0);
+    break;
+  }
+  return NULL;
+}
+
+
+/**
+ * Convert out call state to human readable string.
+ *
+ * @param os state to convert
+ * @return human readable description
+ */
+static const char *
+out_call_state_to_string (enum OutCallState os)
+{
+  switch (os)
+  {
+  case OUT_STATE_NONE:
+    return _("none");
+  case OUT_STATE_RESOLVING:
+    return _("resolving");
+  case OUT_STATE_RINGING:
+    return _("ringing");
+  case OUT_STATE_CONNECTED:
+    return _("connected");
+  case OUT_STATE_SUSPENDED_LOCAL:
+    return _("suspended");
+  case OUT_STATE_SUSPENDED_REMOTE:
+    return _("on hold");
+  case OUT_STATE_SUSPENDED_BOTH:
+    return _("suspended and on hold");
+  default:
+    GNUNET_break (0);
+    break;
+  }
+  return NULL;
+}
+
+
+/**
  * Free data structure associated with an incoming call.
  *
  * @param ic incoming call to free
@@ -453,9 +517,9 @@
   gtk_tree_model_get (model,
                      &iter,
                      GCG_PHONE_LS_TYPE, &type,
-                     GCG_PHONE_LS_CALL_STATE, &out_state,
-                     GCG_PHONE_LS_CALLER_STATE, &in_state,
-                     GCG_PHONE_LS_CALLER, &ic,
+                     GCG_PHONE_LS_OUT_CALL_STATE, &out_state,
+                     GCG_PHONE_LS_IN_CALL_STATE, &in_state,
+                     GCG_PHONE_LS_INCOMING_CALL, &ic,
                      -1);
   switch ((enum TypeOfConversation) type)
   {
@@ -513,7 +577,7 @@
       gtk_widget_set_sensitive (b_accept, ! in_call);
       gtk_widget_set_sensitive (b_refuse, FALSE);
       gtk_widget_set_sensitive (b_resume, ! in_call);
-    case OUT_STATE_ACTIVE:
+    case OUT_STATE_CONNECTED:
       gtk_widget_set_sensitive (b_add_contact, TRUE); 
       gtk_widget_set_sensitive (b_accept, FALSE);
       gtk_widget_set_sensitive (b_refuse, FALSE);
@@ -586,7 +650,7 @@
     break;
   case OUT_STATE_RINGING:
     break;
-  case OUT_STATE_ACTIVE:
+  case OUT_STATE_CONNECTED:
     break;
   case OUT_STATE_SUSPENDED_LOCAL:
     break;
@@ -597,7 +661,8 @@
   }
   gtk_list_store_set (active_liststore,
                       &iter,
-                      GCG_PHONE_LS_CALL_STATE, state,
+                      GCG_PHONE_LS_OUT_CALL_STATE, state,
+                      GCG_PHONE_LS_STATE_NAME, out_call_state_to_string 
(state),
                       -1);
   update_call_buttons (gtk_tree_view_get_selection (active_treeview));
 }
@@ -641,7 +706,8 @@
   }
   gtk_list_store_set (active_liststore,
                       &iter,
-                      GCG_PHONE_LS_CALLER_STATE, state,
+                      GCG_PHONE_LS_IN_CALL_STATE, state,
+                      GCG_PHONE_LS_STATE_NAME, in_call_state_to_string (state),
                       -1);
   update_call_buttons (gtk_tree_view_get_selection (active_treeview));
 }
@@ -672,15 +738,17 @@
     in_ring_counter++;
     ic = GNUNET_new (struct IncomingCall);
     ic->caller = caller;
+    ic->state = IN_STATE_RINGING;
     ic->caller_id = GNUNET_strdup (caller_id);
     ic->caller_num = caller_num_gen++;
     gtk_list_store_insert_with_values (active_liststore,
                                        &iter,
                                        -1,
-                                       GCG_PHONE_LS_CALLER_ID, caller_id,
-                                       GCG_PHONE_LS_CALLER, ic,
-                                       GCG_PHONE_LS_CALLER_NUM, caller_num_gen,
-                                       GCG_PHONE_LS_CALLER_STATE, 
IN_STATE_RINGING,
+                                       GCG_PHONE_LS_REMOTE_USER_NAME, 
caller_id,
+                                       GCG_PHONE_LS_INCOMING_CALL, ic,
+                                       GCG_PHONE_LS_NUMBER, ic->caller_num,
+                                       GCG_PHONE_LS_IN_CALL_STATE, ic->state,
+                                       GCG_PHONE_LS_STATE_NAME, 
in_call_state_to_string (ic->state),
                                        GCG_PHONE_LS_TYPE, CALL_IN,
                                        -1);
     path = gtk_tree_model_get_path (GTK_TREE_MODEL (active_liststore),
@@ -690,7 +758,7 @@
     gtk_tree_path_free (path);
     GCG_log (_("A Incoming call from `%s' with number %u\n"),
              caller_id,
-             caller_num_gen);
+             ic->caller_num);
     break;
   case GNUNET_CONVERSATION_EC_PHONE_HUNG_UP:
     GNUNET_break (in_ring_counter > 0);
@@ -702,7 +770,7 @@
     {
       gtk_tree_model_get (GTK_TREE_MODEL (active_liststore),
                           &iter,
-                          GCG_PHONE_LS_CALLER, &ic,
+                          GCG_PHONE_LS_INCOMING_CALL, &ic,
                           -1);
       if (caller == ic->caller)
       {
@@ -843,7 +911,7 @@
   }
   gtk_tree_model_get (model,
                      &iter,
-                     GCG_PHONE_LS_CALLER, &ic,
+                     GCG_PHONE_LS_INCOMING_CALL, &ic,
                      -1);
   if (NULL == ic)
   {
@@ -854,7 +922,7 @@
   active_in = ic;
   set_incoming_call_state (ic,
                            IN_STATE_CONNECTED);
-  GCG_update_status_bar (_("Started a conversation with `%s'.\n"),
+  GCG_update_status_bar (_("Started a conversation with `%s'."),
                          ic->caller_id);
   GCG_set_status_icon ("gnunet-conversation-call-active");
   GNUNET_CONVERSATION_caller_pick_up (ic->caller,
@@ -893,8 +961,8 @@
   }
   gtk_tree_model_get (model,
                      &iter,
-                     GCG_PHONE_LS_CALLER, &ic,
-                     GCG_PHONE_LS_CALL, &oc,
+                     GCG_PHONE_LS_INCOMING_CALL, &ic,
+                     GCG_PHONE_LS_OUTGOING_CALL, &oc,
                      -1);
   if (NULL != ic)
   {
@@ -906,7 +974,7 @@
     }
     GNUNET_break (in_ring_counter > 0);
     in_ring_counter--;
-    GCG_update_status_bar (_("Rejected conversation with `%s'.\n"),
+    GCG_update_status_bar (_("Rejected conversation with `%s'."),
                           ic->caller_id);
     GCG_HISTORY_add (GCG_HISTORY_TYPE_REJECTED,
                     ic->caller_id);
@@ -925,7 +993,7 @@
       GNUNET_break (0);
       return;
     }
-    GCG_update_status_bar (_("Terminated suspended conversation with `%s'.\n"),
+    GCG_update_status_bar (_("Terminated suspended conversation with `%s'."),
                           oc->peer_name);
     GCG_HISTORY_add (GCG_HISTORY_TYPE_HANGUP,
                     oc->peer_name);
@@ -956,8 +1024,6 @@
   const gchar *target;
 
   target = gtk_entry_get_text (address_entry);
-  gtk_entry_set_text (address_entry,
-                      "FIXME");
 #endif
 }
 
@@ -997,15 +1063,15 @@
   }
   gtk_tree_model_get (model,
                      &iter,
-                     GCG_PHONE_LS_CALLER, &ic,
-                     GCG_PHONE_LS_CALL, &oc,
+                     GCG_PHONE_LS_INCOMING_CALL, &ic,
+                     GCG_PHONE_LS_OUTGOING_CALL, &oc,
                      -1);
   if (NULL != ic)
   {
     active_in = ic;
     set_incoming_call_state (ic,
                             IN_STATE_CONNECTED);
-    GCG_update_status_bar (_("Resumed conversation with `%s'.\n"),
+    GCG_update_status_bar (_("Resumed conversation with `%s'."),
                           ic->caller_id);
     GCG_set_status_icon ("gnunet-conversation-call-active");
     GNUNET_CONVERSATION_caller_resume (ic->caller,
@@ -1020,7 +1086,7 @@
     GNUNET_CONVERSATION_call_resume (oc->call,
                                      speaker, mic);
     set_outgoing_call_state (oc,
-                             OUT_STATE_ACTIVE);
+                             OUT_STATE_CONNECTED);
     // GCG_HISTORY_add (GCG_HISTORY_TYPE_RESUMED, ic->caller_id);
     do_status ();
     return;
@@ -1064,7 +1130,7 @@
     case OUT_STATE_RINGING:
       GNUNET_assert (0);
       break;
-    case OUT_STATE_ACTIVE:
+    case OUT_STATE_CONNECTED:
       os = OUT_STATE_SUSPENDED_LOCAL;
       break;
     case OUT_STATE_SUSPENDED_LOCAL:
@@ -1229,7 +1295,7 @@
     break;
   case GNUNET_CONVERSATION_EC_CALL_PICKED_UP:
     GNUNET_break (OUT_STATE_RINGING == oc->state);
-    set_outgoing_call_state (oc, OUT_STATE_ACTIVE);
+    set_outgoing_call_state (oc, OUT_STATE_CONNECTED);
     GNUNET_break (active_out == oc);
     gtk_widget_set_sensitive (b_suspend, TRUE);
     GCG_log (_("Connection established to `%s'."),
@@ -1285,7 +1351,7 @@
     case OUT_STATE_RINGING:
       GNUNET_assert (0);
       break;
-    case OUT_STATE_ACTIVE:
+    case OUT_STATE_CONNECTED:
       os = OUT_STATE_SUSPENDED_REMOTE;
       break;
     case OUT_STATE_SUSPENDED_LOCAL:
@@ -1319,14 +1385,14 @@
     case OUT_STATE_RINGING:
       GNUNET_assert (0);
       break;
-    case OUT_STATE_ACTIVE:
+    case OUT_STATE_CONNECTED:
       GNUNET_assert (0);
       break;
     case OUT_STATE_SUSPENDED_LOCAL:
       GNUNET_assert (0);
       break;
     case OUT_STATE_SUSPENDED_REMOTE:
-      os = OUT_STATE_ACTIVE;
+      os = OUT_STATE_CONNECTED;
       break;
     case OUT_STATE_SUSPENDED_BOTH:
       os = OUT_STATE_SUSPENDED_LOCAL;
@@ -1338,7 +1404,7 @@
     GCG_log (_("Connection to `%s' resumed by remote\n"),
              oc->peer_name);
     set_outgoing_call_state (oc, os);
-    if (OUT_STATE_ACTIVE == os)
+    if (OUT_STATE_CONNECTED == os)
     {
       GCG_update_status_bar (_("Talking to `%s'."),
                             oc->peer_name);
@@ -1374,50 +1440,35 @@
 
 
 /**
- * Initiate a new call.
+ * The "connect" button was clicked.  Initiate a call!
  *
- * @param arg address of the user to call
+ * @param button the button
+ * @param user_data builder (unused)
  */
 void
-GSC_PHONE_make_call (const char *arg)
+gnunet_conversation_gtk_call_button_clicked_cb (GtkButton *button,
+                                                gpointer user_data)
+
 {
   struct GNUNET_IDENTITY_Ego *caller_id;
   GtkTreePath *path;
   GtkTreeIter iter;
   struct OutgoingCall *oc;
+  const char *arg;
 
-  gtk_entry_set_text (address_entry,
-                      arg);
+  arg = gtk_entry_get_text (address_entry);
   caller_id = GCG_EGOS_get_selected_ego ();
-  if (NULL == caller_id)
+  if ( (NULL == caller_id) ||
+       (NULL != active_out) ||
+       (NULL != active_in) )
   {
-    /* can happen if user activated address in phone book
-       while our phone was still down (no ego selected) */
-    GCG_log (_("Caller ID unavailable, cannot initiate call to `%s'.\n"),
-             arg);
+    GNUNET_break (0);
     return;
   }
-  if (NULL != active_out)
-  {
-    if (0 == strcmp (active_out->peer_name,
-                     arg))
-      return; /* user likely simply clicked a bit too often, ignore */
-    GCG_log (_("You are on the phone with `%s', suspend or hang up before 
trying to call `%s'!\n"),
-             active_out->peer_name,
-             arg);
-    return;
-  }
-  if (NULL != active_in)
-  {
-    GCG_log (_("You are on the phone with `%s', suspend or hang up before 
trying to call `%s'!\n"),
-             active_in->caller_id,
-             arg);
-    return;
-  }
-  call_counter++;
   oc = GNUNET_new (struct OutgoingCall);
   oc->peer_name = GNUNET_strdup (arg);
   oc->state = OUT_STATE_RESOLVING;
+  oc->caller_num = caller_num_gen++;
   oc->call =
     GNUNET_CONVERSATION_call_start (GCG_get_configuration (),
                                     caller_id,
@@ -1427,14 +1478,15 @@
   gtk_list_store_insert_with_values (active_liststore,
                                      &iter,
                                      -1,
-                                     GCG_PHONE_LS_CALLER_ID, oc->peer_name,
-                                     GCG_PHONE_LS_CALLER, NULL,
-                                     GCG_PHONE_LS_CALLER_NUM, 0,
-                                     GCG_PHONE_LS_CALLER_STATE, IN_STATE_NONE,
+                                     GCG_PHONE_LS_REMOTE_USER_NAME, 
oc->peer_name,
+                                     GCG_PHONE_LS_INCOMING_CALL, NULL,
+                                     GCG_PHONE_LS_NUMBER, oc->caller_num,
+                                     GCG_PHONE_LS_IN_CALL_STATE, IN_STATE_NONE,
                                      GCG_PHONE_LS_TYPE, CALL_OUT,
-                                     GCG_PHONE_LS_CALL, oc,
-                                     GCG_PHONE_LS_CALL_NUM, call_counter,
-                                     GCG_PHONE_LS_CALL_STATE, 
OUT_STATE_RESOLVING,
+                                     GCG_PHONE_LS_OUTGOING_CALL, oc,
+                                     GCG_PHONE_LS_OUT_CALL_STATE, oc->state,
+                                    GCG_PHONE_LS_STATE_NAME, 
out_call_state_to_string (oc->state),
+
                                      -1); 
   path = gtk_tree_model_get_path (GTK_TREE_MODEL (active_liststore),
                                  &iter);
@@ -1461,20 +1513,6 @@
 
 
 /**
- * The "connect" button was clicked.  Initiate a call!
- *
- * @param button the button
- * @param user_data builder (unused)
- */
-void
-gnunet_conversation_gtk_call_button_clicked_cb (GtkButton *button,
-                                                gpointer user_data)
-{
-  GSC_PHONE_make_call (gtk_entry_get_text (address_entry));
-}
-
-
-/**
  * The user has changed the address entry.  Consider activating the
  * "call" button.
  *
@@ -1526,7 +1564,7 @@
   if (NULL == phone)
   {
     GCG_update_status_bar ("%s",
-                           _("Failed to setup phone (internal error)\n"));
+                           _("Failed to setup phone (internal error)"));
     GCG_log ("%s",
              _("Failed to setup phone (internal error)\n"));
     GCG_set_status_icon ("gnunet-conversation-offline");

Modified: gnunet-gtk/src/conversation/gnunet-conversation-gtk_phone.h
===================================================================
--- gnunet-gtk/src/conversation/gnunet-conversation-gtk_phone.h 2014-06-01 
13:30:32 UTC (rev 33459)
+++ gnunet-gtk/src/conversation/gnunet-conversation-gtk_phone.h 2014-06-01 
15:16:50 UTC (rev 33460)
@@ -30,15 +30,6 @@
 
 
 /**
- * Initiate a call to the given address.
- *
- * @param address address to call
- */
-void
-GSC_PHONE_make_call (const char *address);
-
-
-/**
  * Initialize phone subsystem.
  */
 void

Modified: gnunet-gtk/src/conversation/gnunet-conversation-gtk_visibility.c
===================================================================
--- gnunet-gtk/src/conversation/gnunet-conversation-gtk_visibility.c    
2014-06-01 13:30:32 UTC (rev 33459)
+++ gnunet-gtk/src/conversation/gnunet-conversation-gtk_visibility.c    
2014-06-01 15:16:50 UTC (rev 33460)
@@ -79,4 +79,19 @@
 }
 
 
+/**
+ * Caller identity view is toggled.
+ *
+ * @param dummy widget triggering the event
+ * @param data main window builder (unused)
+ */
+void
+gnunet_conversation_gtk_view_caller_id_checkmenuitem_toggled_cb (GtkWidget * 
dummy,
+                                                               gpointer data)
+{
+  toggle_view ("gnunet_conversation_gtk_caller_identity_frame",
+               "gnunet_conversation_gtk_view_caller_id_checkmenuitem");
+}
+
+
 /* end of gnunet-conversation-gtk_visibility.c */




reply via email to

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