improve avatar manipulation

Changes interface to mimick the one in Gnome Contacts:
- no more trash or export buttons
- the first choice is to take a photo or import
- adds return/undo buttons during selection process

Change-Id: I432f4bad48c1379f6fb26569edea32a24cbb98e9
Tuleap: #840
diff --git a/ui/avatarmanipulation.ui b/ui/avatarmanipulation.ui
index 5b83dd4..f54e7f5 100644
--- a/ui/avatarmanipulation.ui
+++ b/ui/avatarmanipulation.ui
@@ -1,34 +1,32 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.19.0 -->
 <interface>
   <requires lib="gtk+" version="3.10"/>
   <object class="GtkImage" id="image_add_symbolic">
     <property name="visible">True</property>
-    <property name="can_focus">False</property>
     <property name="icon_name">list-add-symbolic</property>
   </object>
   <object class="GtkImage" id="image_camera_photo">
     <property name="visible">True</property>
-    <property name="can_focus">False</property>
     <property name="icon_name">camera-photo-symbolic</property>
   </object>
-  <object class="GtkImage" id="image_save_symbolic">
-    <property name="can_focus">False</property>
-    <property name="icon_name">document-save-symbolic</property>
-  </object>
-  <object class="GtkImage" id="image_select_symbolic">
+  <object class="GtkImage" id="image_take_photo">
     <property name="visible">True</property>
-    <property name="can_focus">False</property>
     <property name="icon_name">object-select-symbolic</property>
   </object>
-  <object class="GtkImage" id="image_trash_symbolic">
+  <object class="GtkImage" id="image_select_area">
     <property name="visible">True</property>
-    <property name="can_focus">False</property>
-    <property name="icon_name">user-trash-symbolic</property>
+    <property name="icon_name">object-select-symbolic</property>
+  </object>
+  <object class="GtkImage" id="image_return_photo">
+    <property name="visible">True</property>
+    <property name="icon_name">edit-undo-symbolic</property>
+  </object>
+  <object class="GtkImage" id="image_return_edit">
+    <property name="visible">True</property>
+    <property name="icon_name">edit-undo-symbolic</property>
   </object>
   <template class="AvatarManipulation" parent="GtkBox">
     <property name="visible">True</property>
-    <property name="can_focus">False</property>
     <property name="halign">center</property>
     <property name="valign">center</property>
     <property name="orientation">vertical</property>
@@ -73,90 +71,108 @@
         <child>
           <object class="GtkBox" id="box_controls">
             <property name="visible">True</property>
-            <property name="can_focus">False</property>
             <property name="halign">center</property>
             <property name="valign">center</property>
-            <style>
-              <class name="linked"/>
-              <class name="horizontal"/>
-            </style>
+
+            <!-- initial state: take photo or choose image -->
             <child>
-              <object class="GtkButton" id="button_take_photo">
-                <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="receives_default">True</property>
-                <property name="halign">center</property>
-                <property name="valign">center</property>
-                <property name="image">image_camera_photo</property>
-                <property name="always_show_image">True</property>
-                <property name="tooltip-text" translatable="yes">Take photo</property>
-              </object>
-              <packing>
-                <property name="expand">True</property>
-                <property name="fill">True</property>
-                <property name="position">0</property>
-              </packing>
-            </child>
-            <child>
-              <object class="GtkButton" id="button_trash_avatar">
-                <property name="can_focus">True</property>
-                <property name="receives_default">True</property>
-                <property name="halign">center</property>
-                <property name="valign">center</property>
-                <property name="image">image_trash_symbolic</property>
-                <property name="always_show_image">True</property>
-                <property name="tooltip-text" translatable="yes">Delete current image</property>
-              </object>
-              <packing>
-                <property name="expand">True</property>
-                <property name="fill">True</property>
-                <property name="position">1</property>
-              </packing>
-            </child>
-            <child>
-              <object class="GtkButton" id="button_set_avatar">
-                <property name="can_focus">True</property>
-                <property name="receives_default">True</property>
-                <property name="halign">center</property>
-                <property name="valign">center</property>
-                <property name="image">image_select_symbolic</property>
-                <property name="tooltip-text" translatable="yes">Set selection as image</property>
+              <object class="GtkBox" id="button_box_current">
+                <style>
+                  <class name="linked"/>
+                </style>
+                <child>
+                  <object class="GtkButton" id="button_start_camera">
+                    <property name="visible">True</property>
+                    <property name="receives_default">True</property>
+                    <property name="halign">center</property>
+                    <property name="valign">center</property>
+                    <property name="image">image_camera_photo</property>
+                    <property name="tooltip-text" translatable="yes">Take photo</property>
+                  </object>
+                </child>
+                <child>
+                  <object class="GtkButton" id="button_choose_picture">
+                    <property name="visible">True</property>
+                    <property name="receives_default">True</property>
+                    <property name="halign">center</property>
+                    <property name="valign">center</property>
+                    <property name="image">image_add_symbolic</property>
+                    <property name="tooltip-text" translatable="yes">Choose image from file</property>
+                  </object>
+                </child>
               </object>
               <packing>
                 <property name="expand">False</property>
-                <property name="fill">True</property>
-                <property name="position">2</property>
+                <property name="fill">False</property>
               </packing>
             </child>
+
+            <!-- 2nd state: snap photo or return -->
             <child>
-              <object class="GtkButton" id="button_choose_picture">
-                <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="receives_default">True</property>
-                <property name="halign">center</property>
-                <property name="valign">center</property>
-                <property name="image">image_add_symbolic</property>
-                <property name="tooltip-text" translatable="yes">Choose image from file</property>
-              </object>
-              <packing>
-                <property name="expand">True</property>
-                <property name="fill">True</property>
-                <property name="position">3</property>
-              </packing>
-            </child>
-            <child>
-              <object class="GtkButton" id="button_export_avatar">
-                <property name="can_focus">True</property>
-                <property name="receives_default">True</property>
-                <property name="image">image_save_symbolic</property>
-                <property name="tooltip-text" translatable="yes">Save image to file</property>
+              <object class="GtkBox" id="button_box_photo">
+                <style>
+                  <class name="linked"/>
+                </style>
+                <child>
+                  <object class="GtkButton" id="button_take_photo">
+                    <property name="visible">True</property>
+                    <property name="receives_default">True</property>
+                    <property name="halign">center</property>
+                    <property name="valign">center</property>
+                    <property name="image">image_take_photo</property>
+                    <property name="tooltip-text" translatable="yes">Take photo</property>
+                  </object>
+                </child>
+                <child>
+                  <object class="GtkButton" id="button_return_photo">
+                    <property name="visible">True</property>
+                    <property name="receives_default">True</property>
+                    <property name="halign">center</property>
+                    <property name="valign">center</property>
+                    <property name="image">image_return_photo</property>
+                    <property name="tooltip-text" translatable="yes">Return</property>
+                  </object>
+                </child>
               </object>
               <packing>
                 <property name="expand">False</property>
-                <property name="fill">True</property>
-                <property name="position">4</property>
+                <property name="fill">False</property>
               </packing>
             </child>
+
+            <!-- 3rd state: select photo area or return -->
+            <child>
+              <object class="GtkBox" id="button_box_edit">
+                <style>
+                  <class name="linked"/>
+                </style>
+                <child>
+                  <object class="GtkButton" id="button_set_avatar">
+                    <property name="visible">True</property>
+                    <property name="receives_default">True</property>
+                    <property name="halign">center</property>
+                    <property name="valign">center</property>
+                    <property name="image">image_select_area</property>
+                    <property name="tooltip-text" translatable="yes">Set selection as image</property>
+                  </object>
+                </child>
+                <child>
+                  <object class="GtkButton" id="button_return_edit">
+                    <property name="visible">True</property>
+                    <property name="receives_default">True</property>
+                    <property name="halign">center</property>
+                    <property name="valign">center</property>
+                    <property name="image">image_return_edit</property>
+                    <property name="tooltip-text" translatable="yes">Return</property>
+                  </object>
+                </child>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+              </packing>
+            </child>
+
           </object>
           <packing>
             <property name="expand">False</property>