gnunet-svn
[Top][All Lists]
Advanced

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

[taler-anastasis-gtk] 02/05: worked on authentication_frame, added illus


From: gnunet
Subject: [taler-anastasis-gtk] 02/05: worked on authentication_frame, added illustration
Date: Wed, 23 Sep 2020 19:02:52 +0200

This is an automated email from the git hooks/post-receive script.

dennis-neufeld pushed a commit to branch master
in repository anastasis-gtk.

commit d0b0015f7f213fbbf327011bc84bfabe64041854
Author: Dennis Neufeld <dennis.neufeld@students.bfh.ch>
AuthorDate: Tue Sep 22 12:52:13 2020 +0200

    worked on authentication_frame, added illustration
---
 contrib/Makefile.am                     |    8 +-
 contrib/anastasis_gtk_main_window.glade | 1062 ++++++++++++++++++++++++++++++-
 contrib/authentication_methods.png      |  Bin 0 -> 64527 bytes
 contrib/continent_selection.png         |  Bin 0 -> 26332719 bytes
 contrib/country_selection.png           |  Bin 0 -> 23542533 bytes
 contrib/user_attributes.png             |  Bin 0 -> 34233 bytes
 src/anastasis/anastasis-gtk.c           |  421 ++++++++++++
 src/anastasis/anastasis-gtk_backup.c    |   87 ++-
 src/anastasis/anastasis-gtk_helper.c    |  351 +---------
 src/include/anastasis-gtk_helper.h      |   11 +-
 10 files changed, 1573 insertions(+), 367 deletions(-)

diff --git a/contrib/Makefile.am b/contrib/Makefile.am
index 31ba751..2bd85f9 100644
--- a/contrib/Makefile.am
+++ b/contrib/Makefile.am
@@ -6,7 +6,11 @@ SUBDIRS = .
 pkgdatadir= $(prefix)/share/anastasis/
 
 IMAGES = \
- logo.svg
+  logo.svg \
+  country_selection.png \
+  continent_selection.png \
+  user_attributes.png \
+  authentication_methods.png 
 
 EXTRA_DIST = \
   $(pkgdata_DATA) \
@@ -16,4 +20,4 @@ EXTRA_DIST = \
 pkgdata_DATA = \
   $(IMAGES) \
   anastasis_gtk_about_window.glade \
-  anastasis_gtk_main_window.glade
+  anastasis_gtk_main_window.glade 
diff --git a/contrib/anastasis_gtk_main_window.glade 
b/contrib/anastasis_gtk_main_window.glade
index 124ce6f..121a639 100644
--- a/contrib/anastasis_gtk_main_window.glade
+++ b/contrib/anastasis_gtk_main_window.glade
@@ -2,6 +2,1012 @@
 <!-- Generated with glade 3.36.0 -->
 <interface>
   <requires lib="gtk+" version="3.0"/>
+  <object class="GtkDialog" id="anastasis_gtk_b_email_dialog">
+    <property name="can_focus">False</property>
+    <property name="type_hint">dialog</property>
+    <child internal-child="vbox">
+      <object class="GtkBox">
+        <property name="can_focus">False</property>
+        <property name="orientation">vertical</property>
+        <property name="spacing">2</property>
+        <child internal-child="action_area">
+          <object class="GtkButtonBox">
+            <property name="can_focus">False</property>
+            <property name="layout_style">end</property>
+            <child>
+              <object class="GtkButton">
+                <property name="label" translatable="yes">Cancel</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+              </object>
+              <packing>
+                <property name="expand">True</property>
+                <property name="fill">True</property>
+                <property name="position">0</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkButton">
+                <property name="label" translatable="yes">OK</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+              </object>
+              <packing>
+                <property name="expand">True</property>
+                <property name="fill">True</property>
+                <property name="position">1</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">False</property>
+            <property name="position">0</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkBox">
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <property name="orientation">vertical</property>
+            <child>
+              <object class="GtkBox">
+                <property name="can_focus">False</property>
+                <child>
+                  <object class="GtkLabel">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="label" translatable="yes">Choose 
provider:</property>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">True</property>
+                    <property name="position">0</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkComboBoxText">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="has_entry">True</property>
+                    <items>
+                      <item translatable="yes">ABCDEFGH</item>
+                    </items>
+                    <child internal-child="entry">
+                      <object class="GtkEntry">
+                        <property name="can_focus">True</property>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">True</property>
+                    <property name="position">1</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="GtkSeparator">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">True</property>
+                <property name="position">1</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkBox">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <child>
+                  <object class="GtkLabel">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="label" translatable="yes">Email 
address:</property>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">True</property>
+                    <property name="position">0</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkEntry">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="hexpand">True</property>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">True</property>
+                    <property name="position">1</property>
+                  </packing>
+                </child>
+              </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>
+            <property name="fill">True</property>
+            <property name="position">1</property>
+          </packing>
+        </child>
+      </object>
+    </child>
+    <child type="titlebar">
+      <object class="GtkLabel">
+        <property name="visible">True</property>
+        <property name="can_focus">False</property>
+        <property name="label" translatable="yes">Add email 
authentication</property>
+      </object>
+    </child>
+  </object>
+  <object class="GtkDialog" id="anastasis_gtk_b_post_dialog">
+    <property name="can_focus">False</property>
+    <property name="type_hint">dialog</property>
+    <child internal-child="vbox">
+      <object class="GtkBox">
+        <property name="can_focus">False</property>
+        <property name="orientation">vertical</property>
+        <property name="spacing">2</property>
+        <child internal-child="action_area">
+          <object class="GtkButtonBox">
+            <property name="can_focus">False</property>
+            <property name="layout_style">end</property>
+            <child>
+              <object class="GtkButton">
+                <property name="label" translatable="yes">Cancel</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+              </object>
+              <packing>
+                <property name="expand">True</property>
+                <property name="fill">True</property>
+                <property name="position">0</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkButton">
+                <property name="label" translatable="yes">OK</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+              </object>
+              <packing>
+                <property name="expand">True</property>
+                <property name="fill">True</property>
+                <property name="position">1</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">False</property>
+            <property name="position">0</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkBox">
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <property name="orientation">vertical</property>
+            <child>
+              <object class="GtkBox">
+                <property name="can_focus">False</property>
+                <child>
+                  <object class="GtkLabel">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="label" translatable="yes">Choose 
provider:</property>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">True</property>
+                    <property name="position">0</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkComboBoxText">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="has_entry">True</property>
+                    <items>
+                      <item translatable="yes">ABCDEFGH</item>
+                    </items>
+                    <child internal-child="entry">
+                      <object class="GtkEntry">
+                        <property name="can_focus">False</property>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">True</property>
+                    <property name="position">1</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="GtkSeparator">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">True</property>
+                <property name="position">1</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkBox">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <child>
+                  <object class="GtkLabel">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="label" translatable="yes">Full 
name:</property>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">True</property>
+                    <property name="position">0</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkEntry">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="hexpand">True</property>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">True</property>
+                    <property name="position">1</property>
+                  </packing>
+                </child>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">True</property>
+                <property name="position">2</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkBox">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <child>
+                  <object class="GtkLabel">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="label" 
translatable="yes">Street:</property>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">True</property>
+                    <property name="position">0</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkEntry">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="hexpand">True</property>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">True</property>
+                    <property name="position">1</property>
+                  </packing>
+                </child>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">True</property>
+                <property name="position">3</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkBox">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <child>
+                  <object class="GtkLabel">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="label" translatable="yes">City:</property>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">True</property>
+                    <property name="position">0</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkEntry">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="hexpand">True</property>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">True</property>
+                    <property name="position">1</property>
+                  </packing>
+                </child>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">True</property>
+                <property name="position">4</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkSeparator">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">True</property>
+                <property name="position">5</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkBox">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <child>
+                  <object class="GtkLabel">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="label" 
translatable="yes">Postcode:</property>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">True</property>
+                    <property name="position">0</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkEntry">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="hexpand">True</property>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">True</property>
+                    <property name="position">1</property>
+                  </packing>
+                </child>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">True</property>
+                <property name="position">6</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkBox">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <child>
+                  <object class="GtkLabel">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="label" 
translatable="yes">Country:</property>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">True</property>
+                    <property name="position">0</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkEntry">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="hexpand">True</property>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">True</property>
+                    <property name="position">1</property>
+                  </packing>
+                </child>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">True</property>
+                <property name="position">7</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="titlebar">
+      <object class="GtkLabel">
+        <property name="visible">True</property>
+        <property name="can_focus">False</property>
+        <property name="label" translatable="yes">Add post 
authentication</property>
+      </object>
+    </child>
+  </object>
+  <object class="GtkDialog" id="anastasis_gtk_b_question_dialog">
+    <property name="can_focus">False</property>
+    <property name="type_hint">dialog</property>
+    <child internal-child="vbox">
+      <object class="GtkBox">
+        <property name="can_focus">False</property>
+        <property name="orientation">vertical</property>
+        <property name="spacing">2</property>
+        <child internal-child="action_area">
+          <object class="GtkButtonBox">
+            <property name="can_focus">False</property>
+            <property name="layout_style">end</property>
+            <child>
+              <object class="GtkButton" 
id="anastasis_gtk_b_question_dialog_btn_cancel">
+                <property name="label" translatable="yes">Cancel</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</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="anastasis_gtk_b_question_dialog_btn_ok">
+                <property name="label" translatable="yes">OK</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+              </object>
+              <packing>
+                <property name="expand">True</property>
+                <property name="fill">True</property>
+                <property name="position">1</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">False</property>
+            <property name="position">0</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkBox">
+            <property name="can_focus">False</property>
+            <child>
+              <object class="GtkLabel">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="label" translatable="yes">Choose 
provider:</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">True</property>
+                <property name="position">0</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkComboBoxText">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="has_entry">True</property>
+                <items>
+                  <item translatable="yes">ABCDEFGH</item>
+                </items>
+                <child internal-child="entry">
+                  <object class="GtkEntry">
+                    <property name="can_focus">True</property>
+                  </object>
+                </child>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">True</property>
+                <property name="position">1</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">
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <property name="orientation">vertical</property>
+            <child>
+              <object class="GtkSeparator">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">True</property>
+                <property name="position">0</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkBox">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <child>
+                  <object class="GtkLabel">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="label" translatable="yes">Secure 
question:</property>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">True</property>
+                    <property name="position">0</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkEntry">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="hexpand">True</property>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">True</property>
+                    <property name="position">1</property>
+                  </packing>
+                </child>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">True</property>
+                <property name="position">1</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkSeparator">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+              </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>
+            <property name="fill">True</property>
+            <property name="position">1</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkBox">
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <child>
+              <object class="GtkLabel">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="label" translatable="yes">Secure 
answer:</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">True</property>
+                <property name="position">0</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkEntry">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="hexpand">True</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">True</property>
+                <property name="position">1</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">True</property>
+            <property name="position">3</property>
+          </packing>
+        </child>
+      </object>
+    </child>
+    <child type="titlebar">
+      <object class="GtkLabel">
+        <property name="visible">True</property>
+        <property name="can_focus">False</property>
+        <property name="label" translatable="yes">Add secure question 
authentication</property>
+      </object>
+    </child>
+  </object>
+  <object class="GtkDialog" id="anastasis_gtk_b_sms_dialog">
+    <property name="can_focus">False</property>
+    <property name="type_hint">dialog</property>
+    <child internal-child="vbox">
+      <object class="GtkBox">
+        <property name="can_focus">False</property>
+        <property name="orientation">vertical</property>
+        <property name="spacing">2</property>
+        <child internal-child="action_area">
+          <object class="GtkButtonBox">
+            <property name="can_focus">False</property>
+            <property name="layout_style">end</property>
+            <child>
+              <object class="GtkButton" 
id="anastasis_gtk_b_sms_dialog_btn_cancel">
+                <property name="label" translatable="yes">Cancel</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</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="anastasis_gtk_b_sms_dialog_btn_ok">
+                <property name="label" translatable="yes">OK</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+              </object>
+              <packing>
+                <property name="expand">True</property>
+                <property name="fill">True</property>
+                <property name="position">1</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">False</property>
+            <property name="position">0</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkBox">
+            <property name="can_focus">False</property>
+            <child>
+              <object class="GtkLabel">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="label" translatable="yes">Choose 
provider:</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">True</property>
+                <property name="position">0</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkComboBoxText">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="has_entry">True</property>
+                <items>
+                  <item translatable="yes">ABCDEFGH</item>
+                </items>
+                <child internal-child="entry">
+                  <object class="GtkEntry">
+                    <property name="can_focus">True</property>
+                  </object>
+                </child>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">True</property>
+                <property name="position">1</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">
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <property name="orientation">vertical</property>
+            <child>
+              <object class="GtkSeparator">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">True</property>
+                <property name="position">0</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkSeparator">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">True</property>
+                <property name="position">1</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkBox">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <child>
+                  <object class="GtkLabel">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="label" translatable="yes">Phone 
number:</property>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">True</property>
+                    <property name="position">0</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkEntry">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="hexpand">True</property>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">True</property>
+                    <property name="position">1</property>
+                  </packing>
+                </child>
+              </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>
+            <property name="fill">True</property>
+            <property name="position">2</property>
+          </packing>
+        </child>
+      </object>
+    </child>
+    <child type="titlebar">
+      <object class="GtkLabel">
+        <property name="visible">True</property>
+        <property name="can_focus">False</property>
+        <property name="label" translatable="yes">Add sms 
authentication</property>
+      </object>
+    </child>
+  </object>
+  <object class="GtkDialog" id="anastasis_gtk_b_video_dialog">
+    <property name="can_focus">False</property>
+    <property name="type_hint">dialog</property>
+    <child internal-child="vbox">
+      <object class="GtkBox">
+        <property name="can_focus">False</property>
+        <property name="orientation">vertical</property>
+        <property name="spacing">2</property>
+        <child internal-child="action_area">
+          <object class="GtkButtonBox">
+            <property name="can_focus">False</property>
+            <property name="layout_style">end</property>
+            <child>
+              <object class="GtkButton">
+                <property name="label" translatable="yes">Cancel</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+              </object>
+              <packing>
+                <property name="expand">True</property>
+                <property name="fill">True</property>
+                <property name="position">0</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkButton">
+                <property name="label" translatable="yes">OK</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+              </object>
+              <packing>
+                <property name="expand">True</property>
+                <property name="fill">True</property>
+                <property name="position">1</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">False</property>
+            <property name="position">0</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkBox">
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <property name="orientation">vertical</property>
+            <child>
+              <object class="GtkBox">
+                <property name="can_focus">False</property>
+                <child>
+                  <object class="GtkLabel">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="label" translatable="yes">Choose 
provider:</property>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">True</property>
+                    <property name="position">0</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkComboBoxText">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="has_entry">True</property>
+                    <items>
+                      <item translatable="yes">ABCDEFGH</item>
+                    </items>
+                    <child internal-child="entry">
+                      <object class="GtkEntry">
+                        <property name="can_focus">True</property>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">True</property>
+                    <property name="position">1</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="GtkSeparator">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">True</property>
+                <property name="position">1</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkBox">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <child>
+                  <object class="GtkLabel">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="label" translatable="yes">Choose a 
photo:</property>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">True</property>
+                    <property name="position">0</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkEntry">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">True</property>
+                    <property name="position">1</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkFileChooserButton">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="title" translatable="yes"/>
+                  </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>
+                <property name="fill">True</property>
+                <property name="position">2</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkImage">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="stock">gtk-missing-image</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">True</property>
+                <property name="position">3</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">True</property>
+            <property name="position">0</property>
+          </packing>
+        </child>
+      </object>
+    </child>
+    <child type="titlebar">
+      <object class="GtkLabel">
+        <property name="visible">True</property>
+        <property name="can_focus">False</property>
+        <property name="label" translatable="yes">Add video 
authentication</property>
+      </object>
+    </child>
+  </object>
   <object class="GtkImage" id="backup_image">
     <property name="visible">True</property>
     <property name="can_focus">False</property>
@@ -28,6 +1034,11 @@
       </row>
     </data>
   </object>
+  <object class="GtkImage" id="image1">
+    <property name="visible">True</property>
+    <property name="can_focus">False</property>
+    <property name="stock">gtk-yes</property>
+  </object>
   <object class="GtkImage" id="restore_image">
     <property name="visible">True</property>
     <property name="can_focus">False</property>
@@ -95,6 +1106,16 @@
                         <signal name="activate" 
handler="anastasis_gtk_about_imagemenuitem_activate_cb" swapped="no"/>
                       </object>
                     </child>
+                    <child>
+                      <object class="GtkImageMenuItem" 
id="anastasis_gtk_animation">
+                        <property name="label">Show animation</property>
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="image">image1</property>
+                        <property name="use_stock">False</property>
+                        <signal name="activate" 
handler="anastasis_gtk_animation_activate_cb" swapped="no"/>
+                      </object>
+                    </child>
                   </object>
                 </child>
               </object>
@@ -560,11 +1581,11 @@
                                                     <property 
name="spacing">8</property>
                                                     <property 
name="homogeneous">True</property>
                                                     <child>
-                                                      <object 
class="GtkButton">
+                                                      <object 
class="GtkButton" id="anastasis_gtk_btn_add_auth_sms">
                                                         <property name="label" 
translatable="yes">SMS</property>
-                                                        <property 
name="visible">True</property>
                                                         <property 
name="can_focus">True</property>
                                                         <property 
name="receives_default">True</property>
+                                                        <signal name="clicked" 
handler="anastasis_gtk_btn_add_auth_sms_clicked_cb" swapped="no"/>
                                                       </object>
                                                       <packing>
                                                         <property 
name="expand">False</property>
@@ -573,11 +1594,11 @@
                                                       </packing>
                                                     </child>
                                                     <child>
-                                                      <object 
class="GtkButton">
+                                                      <object 
class="GtkButton" id="anastasis_gtk_btn_add_auth_email">
                                                         <property name="label" 
translatable="yes">EMAIL</property>
-                                                        <property 
name="visible">True</property>
                                                         <property 
name="can_focus">True</property>
                                                         <property 
name="receives_default">True</property>
+                                                        <signal name="clicked" 
handler="anastasis_gtk_btn_add_auth_email_clicked_cb" swapped="no"/>
                                                       </object>
                                                       <packing>
                                                         <property 
name="expand">False</property>
@@ -586,12 +1607,12 @@
                                                       </packing>
                                                     </child>
                                                     <child>
-                                                      <object 
class="GtkButton">
+                                                      <object 
class="GtkButton" id="anastasis_gtk_btn_add_auth_question">
                                                         <property name="label" 
translatable="yes">SECURE
 QUESTION</property>
-                                                        <property 
name="visible">True</property>
                                                         <property 
name="can_focus">True</property>
                                                         <property 
name="receives_default">True</property>
+                                                        <signal name="clicked" 
handler="anastasis_gtk_btn_add_auth_question_clicked_cb" swapped="no"/>
                                                       </object>
                                                       <packing>
                                                         <property 
name="expand">False</property>
@@ -600,11 +1621,11 @@ QUESTION</property>
                                                       </packing>
                                                     </child>
                                                     <child>
-                                                      <object 
class="GtkButton">
+                                                      <object 
class="GtkButton" id="anastasis_gtk_btn_add_auth_post">
                                                         <property name="label" 
translatable="yes">POST</property>
-                                                        <property 
name="visible">True</property>
                                                         <property 
name="can_focus">True</property>
                                                         <property 
name="receives_default">True</property>
+                                                        <signal name="clicked" 
handler="anastasis_gtk_btn_add_auth_post_clicked_cb" swapped="no"/>
                                                       </object>
                                                       <packing>
                                                         <property 
name="expand">False</property>
@@ -613,11 +1634,11 @@ QUESTION</property>
                                                       </packing>
                                                     </child>
                                                     <child>
-                                                      <object 
class="GtkButton">
+                                                      <object 
class="GtkButton" id="anastasis_gtk_btn_add_auth_video">
                                                         <property name="label" 
translatable="yes">VIDEO AUTH</property>
-                                                        <property 
name="visible">True</property>
                                                         <property 
name="can_focus">True</property>
                                                         <property 
name="receives_default">True</property>
+                                                        <signal name="clicked" 
handler="anastasis_gtk_btn_add_auth_video_clicked_cb" swapped="no"/>
                                                       </object>
                                                       <packing>
                                                         <property 
name="expand">False</property>
@@ -714,10 +1735,12 @@ Provider</property>
                     <child>
                       <object class="GtkBox" 
id="anastasis_gtk_illustration_vbox">
                         <property name="can_focus">False</property>
+                        <property name="halign">baseline</property>
+                        <property name="valign">baseline</property>
                         <property name="orientation">vertical</property>
+                        <property name="homogeneous">True</property>
                         <child>
-                          <object class="GtkImage" id="anastasis_gtk_logo">
-                            <property name="visible">True</property>
+                          <object class="GtkImage" 
id="anastasis_gtk_user_attributes_image">
                             <property name="can_focus">False</property>
                             <property name="stock">gtk-missing-image</property>
                             <property name="icon_size">6</property>
@@ -730,7 +1753,6 @@ Provider</property>
                         </child>
                         <child>
                           <object class="GtkImage" 
id="anastasis_gtk_country_selection_image">
-                            <property name="visible">True</property>
                             <property name="can_focus">False</property>
                             <property name="stock">gtk-missing-image</property>
                           </object>
@@ -741,8 +1763,7 @@ Provider</property>
                           </packing>
                         </child>
                         <child>
-                          <object class="GtkImage" id="anastasis_gtk_logo2">
-                            <property name="visible">True</property>
+                          <object class="GtkImage" 
id="anastasis_gtk_b_authentication_methods_image">
                             <property name="can_focus">False</property>
                             <property name="stock">gtk-missing-image</property>
                           </object>
@@ -754,7 +1775,6 @@ Provider</property>
                         </child>
                         <child>
                           <object class="GtkImage" id="anastasis_gtk_logo3">
-                            <property name="visible">True</property>
                             <property name="can_focus">False</property>
                             <property name="stock">gtk-missing-image</property>
                           </object>
@@ -765,7 +1785,15 @@ Provider</property>
                           </packing>
                         </child>
                         <child>
-                          <placeholder/>
+                          <object class="GtkImage" 
id="anastasis_gtk_continent_selection_image">
+                            <property name="can_focus">False</property>
+                            <property name="stock">gtk-missing-image</property>
+                          </object>
+                          <packing>
+                            <property name="expand">True</property>
+                            <property name="fill">True</property>
+                            <property name="position">4</property>
+                          </packing>
                         </child>
                         <child>
                           <placeholder/>
diff --git a/contrib/authentication_methods.png 
b/contrib/authentication_methods.png
new file mode 100644
index 0000000..883a161
Binary files /dev/null and b/contrib/authentication_methods.png differ
diff --git a/contrib/continent_selection.png b/contrib/continent_selection.png
new file mode 100644
index 0000000..1111ae1
Binary files /dev/null and b/contrib/continent_selection.png differ
diff --git a/contrib/country_selection.png b/contrib/country_selection.png
new file mode 100644
index 0000000..967fbb0
Binary files /dev/null and b/contrib/country_selection.png differ
diff --git a/contrib/user_attributes.png b/contrib/user_attributes.png
new file mode 100644
index 0000000..ad25d18
Binary files /dev/null and b/contrib/user_attributes.png differ
diff --git a/src/anastasis/anastasis-gtk.c b/src/anastasis/anastasis-gtk.c
index 5c9356c..851a295 100644
--- a/src/anastasis/anastasis-gtk.c
+++ b/src/anastasis/anastasis-gtk.c
@@ -56,6 +56,427 @@ struct GNUNET_CURL_Context *ctx;
 json_t *redux_state;
 
 
+/**
+ * Callback invoked if the the "show animation"-menuitem (Help) is clicked.
+ * 
+ * @param menuitem the object which received the signal.
+ * @param user_data user data set when the signal handler was connected.
+ */
+void
+anastasis_gtk_animation_activate_cb (GtkMenuItem *menuitem,
+                                     gpointer     user_data)
+{
+     if (gtk_widget_is_visible (GTK_WIDGET (GCG_get_main_window_object (
+                                        "anastasis_gtk_illustration_vbox"))))
+          gtk_widget_hide (GTK_WIDGET (GCG_get_main_window_object (
+                                             
"anastasis_gtk_illustration_vbox")));
+     else
+     {
+        gtk_widget_show (GTK_WIDGET (GCG_get_main_window_object (
+                                              
"anastasis_gtk_illustration_vbox")));
+        //init pictures
+        {
+          char *path;
+          path = GNUNET_OS_installation_get_path (GNUNET_OS_IPK_PREFIX);
+          if (NULL == path)
+          {
+            GNUNET_break (0);
+            return GNUNET_SYSERR;
+          }
+
+          //continent selection
+          char *con_sel_path;
+          GNUNET_asprintf (&con_sel_path,
+                     "%s/share/anastasis/continent_selection.png",
+                     path);
+          GObject *con_sel_img = GCG_get_main_window_object (
+                                        
"anastasis_gtk_continent_selection_image");
+          gtk_image_set_from_file (GTK_IMAGE (con_sel_img), con_sel_path);
+          GNUNET_free (con_sel_path);
+
+          //country selection
+          char *cou_sel_path;
+          GNUNET_asprintf (&cou_sel_path,
+                     "%s/share/anastasis/country_selection.png",
+                     path);
+          GObject *cou_sel_img = GCG_get_main_window_object (
+                                        
"anastasis_gtk_country_selection_image");
+          gtk_image_set_from_file (GTK_IMAGE (cou_sel_img), cou_sel_path);
+          GNUNET_free (cou_sel_path);
+
+          //user attributes
+          char *user_attr_path;
+          GNUNET_asprintf (&user_attr_path,
+                     "%s/share/anastasis/user_attributes.png",
+                     path);
+          GObject *user_attr_img = GCG_get_main_window_object (
+                                        "anastasis_gtk_user_attributes_image");
+          gtk_image_set_from_file (GTK_IMAGE (user_attr_img), user_attr_path);
+          GNUNET_free (user_attr_path);
+
+          //authentication methods
+          char *auth_meth_path;
+          GNUNET_asprintf (&auth_meth_path,
+                     "%s/share/anastasis/continent_selection.png",
+                     path);
+          GObject *auth_meth_img = GCG_get_main_window_object (
+                                        
"anastasis_gtk_authentication_methods_image");
+          gtk_image_set_from_file (GTK_IMAGE (auth_meth_img), auth_meth_path);
+          GNUNET_free (auth_meth_path);
+
+          GNUNET_free (path);
+        }
+     }
+}
+
+
+/**
+ * Callback invoked if a text is inserted in "cal" GtkEntry.
+ *
+ * @param cell_editable the object on which the signal was emitted
+ * @param user_data user data set when the signal handler was connected 
(unused)
+ */
+void
+anastasis_gtk_ia_birthdate_cal_day_selected_cb (GtkCellEditable *cell_editable,
+                                       gpointer user_data)
+{
+    gtk_widget_set_sensitive (GTK_WIDGET (GCG_get_main_window_object (
+                                        
"anastasis_gtk_main_window_forward_button")), false);
+
+    // check, if required attributes are set to activate forward button
+    if (check_attributes_fullfilled ())
+        gtk_widget_set_sensitive (GTK_WIDGET (GCG_get_main_window_object (
+                                        
"anastasis_gtk_main_window_forward_button")), true);
+}
+
+
+/**
+ * Callback invoked if a text is inserted in "ssn" GtkEntry.
+ *
+ * @param cell_editable the object on which the signal was emitted
+ * @param user_data user data set when the signal handler was connected 
(unused)
+ */
+void
+anastasis_gtk_ia_ssn_entry_changed_cb (GtkCellEditable *cell_editable,
+                                       gpointer user_data)
+{
+    gtk_widget_set_sensitive (GTK_WIDGET (GCG_get_main_window_object (
+                                        
"anastasis_gtk_main_window_forward_button")), false);
+
+    // check, if required attributes are set to activate forward button
+    if (check_attributes_fullfilled ())
+        gtk_widget_set_sensitive (GTK_WIDGET (GCG_get_main_window_object (
+                                        
"anastasis_gtk_main_window_forward_button")), true);
+}
+
+
+/**
+ * Callback invoked if a text is inserted in "ahv" GtkEntry.
+ *
+ * @param cell_editable the object on which the signal was emitted
+ * @param user_data user data set when the signal handler was connected 
(unused)
+ */
+void
+anastasis_gtk_ia_ahv_entry_changed_cb (GtkCellEditable *cell_editable,
+                                       gpointer user_data)
+{
+    gtk_widget_set_sensitive (GTK_WIDGET (GCG_get_main_window_object (
+                                        
"anastasis_gtk_main_window_forward_button")), false);
+
+    // check, if required attributes are set to activate forward button
+    if (check_attributes_fullfilled ())
+        gtk_widget_set_sensitive (GTK_WIDGET (GCG_get_main_window_object (
+                                        
"anastasis_gtk_main_window_forward_button")), true);
+}
+
+
+/**
+ * Callback invoked if a text is inserted in "full_name" GtkEntry.
+ *
+ * @param cell_editable the object on which the signal was emitted
+ * @param user_data user data set when the signal handler was connected 
(unused)
+ */
+void
+anastasis_gtk_ia_full_name_entry_changed_cb (GtkCellEditable *cell_editable,
+                                             gpointer user_data)
+{
+    gtk_widget_set_sensitive (GTK_WIDGET (GCG_get_main_window_object (
+                                        
"anastasis_gtk_main_window_forward_button")), false);
+
+    // check, if required attributes are set to activate forward button
+    if (check_attributes_fullfilled ())
+        gtk_widget_set_sensitive (GTK_WIDGET (GCG_get_main_window_object (
+                                        
"anastasis_gtk_main_window_forward_button")), true);
+}
+
+
+/**
+ * Callback invoked if a continent is selected (row-activated signal).
+ *
+ * @param tree_view the object on which the signal is emitted
+ * @param path the GtkTreePath for the activated row
+ * @param column the GtkTreeViewColumn in which the activation occurred
+ * @param user_data user data set when the signal handler was connected 
(unused)
+ */
+void
+anastasis_gtk_continent_activated (GtkTreeView *tree_view,
+                                   GtkTreePath *path,
+                                   GtkTreeViewColumn *column,
+                                   gpointer user_data)
+{
+        GtkTreeIter iter;
+        GtkTreeModel *model= gtk_tree_view_get_model (tree_view);
+
+        if (gtk_tree_model_get_iter(model, &iter, path))
+        {
+            gchar *continent_name;
+            json_t *arguments = json_object ();
+
+            if (NULL == arguments)
+            {
+                GNUNET_break (0);
+            }
+            gtk_tree_model_get (model, &iter, 0, &continent_name, -1);
+            json_object_set (arguments, "continent", json_string 
(continent_name));
+
+            if (check_state (redux_state, "ReduxContinentSelectedState"))
+                redux_state = ANASTASIS_backup_start (cfg);
+            ANASTASIS_backup_action (redux_state,
+                                     "selection_continent",
+                                     arguments,
+                                     &action_cb,
+                                     NULL);
+            g_free(continent_name);
+        }
+}
+
+
+/**
+ * Callback invoked if a country is selected (row-activated signal).
+ *
+ * @param tree_view the object on which the signal is emitted
+ * @param path the GtkTreePath for the activated row
+ * @param column the GtkTreeViewColumn in which the activation occurred
+ * @param user_data user data set when the signal handler was connected 
(unused)
+ */
+void
+anastasis_gtk_country_activated (GtkTreeView *tree_view,
+                                 GtkTreePath *path,
+                                 GtkTreeViewColumn *column,
+                                 gpointer user_data)
+{
+        GtkTreeIter iter;
+        GtkTreeModel *model= gtk_tree_view_get_model (tree_view);
+
+        if (gtk_tree_model_get_iter(model, &iter, path))
+        {
+            gchar *country_name;
+            gchar *country_code;
+            json_t *arguments = json_object ();
+
+            if (NULL == arguments)
+            {
+                GNUNET_break (0);
+            }
+            gtk_tree_model_get (model, &iter, 
+                                0, &country_name, 
+                                1, &country_code, 
+                                -1);
+            json_object_set (arguments, "country", json_string (country_name));
+            json_object_set (arguments, "country_code", json_string 
(country_code));
+
+            if (check_state (redux_state, "ReduxContinentSelectedState"))
+                ANASTASIS_backup_action (redux_state,
+                                        "selection_country",
+                                        arguments,
+                                        &action_cb,
+                                        NULL);
+
+            else
+                if (! (0 == strcmp (country_name, json_string_value (
+                    json_object_get (redux_state, "selected_country")))))
+                {
+                    ANASTASIS_backup_action (redux_state,
+                                             "changing_country",
+                                             arguments,
+                                             &action_cb,
+                                             NULL);
+                }
+                
+            g_free(country_name);
+            g_free(country_code);
+        }
+}
+
+
+/**
+ * Callback invoked if the the "back"-button is clicked.
+ *
+ * @param object
+ * @param user_data unused
+ */
+void
+anastasis_gtk_main_window_back_clicked (GObject *object,
+                                        gpointer user_data)
+{
+    char *state = json_string_value (json_object_get (redux_state, 
"backup-state"));
+    if (!state)
+        state = json_string_value (json_object_get (redux_state, 
"recovery-state"));
+    GNUNET_assert (state);
+
+    if (gtk_widget_is_visible (GTK_WIDGET (GCG_get_main_window_object (
+                                        "anastasis_gtk_continent_frame"))))
+    {
+        /** FIXME: Show warning in this case, because state is lost afterwards 
*/
+        gtk_widget_show (GTK_WIDGET (GCG_get_main_window_object (
+                                        "anastasis_gtk_start_frame")));
+        gtk_widget_hide (GTK_WIDGET (GCG_get_main_window_object (
+                                        "anastasis_gtk_main_control_vbox")));
+        gtk_widget_hide (GTK_WIDGET (GCG_get_main_window_object (
+                                        "anastasis_gtk_continent_frame")));
+        gtk_widget_set_sensitive (GTK_WIDGET (GCG_get_main_window_object (
+                                        
"anastasis_gtk_main_window_forward_button")), false);
+    }
+    if (gtk_widget_is_visible (GTK_WIDGET (GCG_get_main_window_object (
+                                        "anastasis_gtk_identity_frame"))))
+    {
+        gtk_widget_show (GTK_WIDGET (GCG_get_main_window_object (
+                                        "anastasis_gtk_continent_frame")));
+        gtk_widget_hide (GTK_WIDGET (GCG_get_main_window_object (
+                                        "anastasis_gtk_identity_frame")));
+    }
+    if (gtk_widget_is_visible (GTK_WIDGET (GCG_get_main_window_object (
+                                        
"anastasis_gtk_b_authentication_frame"))))
+    {
+        gtk_widget_show (GTK_WIDGET (GCG_get_main_window_object (
+                                        "anastasis_gtk_identity_frame")));
+        gtk_widget_hide (GTK_WIDGET (GCG_get_main_window_object (
+                                        
"anastasis_gtk_b_authentication_frame")));
+        if (check_attributes_fullfilled ())
+            gtk_widget_set_sensitive (GTK_WIDGET (GCG_get_main_window_object (
+                                        
"anastasis_gtk_main_window_forward_button")), true);
+    }
+}
+
+
+/**
+ * Callback invoked if the the "forward"-button is clicked.
+ *
+ * @param object
+ * @param user_data unused
+ */
+void
+anastasis_gtk_main_window_forward_clicked (GObject *object,
+                                           gpointer user_data)
+{
+    //show identity frame, hide continent frame
+    if (check_state (redux_state, "ReduxCountrySelectedState") &&
+            gtk_widget_is_visible (GTK_WIDGET (GCG_get_main_window_object (
+                                        "anastasis_gtk_continent_frame"))))
+    {
+        gtk_widget_hide (GTK_WIDGET (GCG_get_main_window_object (
+                                        "anastasis_gtk_continent_frame")));
+        gtk_widget_show (GTK_WIDGET (GCG_get_main_window_object (
+                                        "anastasis_gtk_identity_frame")));
+        gtk_widget_set_sensitive (GTK_WIDGET (GCG_get_main_window_object (
+                                        
"anastasis_gtk_main_window_forward_button")), false);
+        gtk_widget_hide (GTK_WIDGET (GCG_get_main_window_object (
+                                        
"anastasis_gtk_continent_selection_image")));
+        gtk_widget_show (GTK_WIDGET (GCG_get_main_window_object (
+                                        
"anastasis_gtk_user_attributes_image")));
+    }
+
+    //show provider frame, hide identity frame
+    if (gtk_widget_is_visible (GTK_WIDGET (GCG_get_main_window_object (
+                                        "anastasis_gtk_identity_frame"))) &&
+                check_attributes_fullfilled ())
+    {
+        GList *children, *iter;
+        json_t *arguments = json_object ();
+        json_t *attributes = json_array ();
+
+        children = gtk_container_get_children (GTK_CONTAINER 
(GCG_get_main_window_object (
+                                                                
"anastasis_gtk_identity_vbox")));
+        for (iter = children; iter != NULL; iter = g_list_next (iter))
+        {
+            bool isset = false;
+            char *entry_widget;
+            char *cal_widget;
+            char *widget = gtk_buildable_get_name (iter->data);
+            json_t *id_attr = json_object ();
+
+            GNUNET_asprintf (&entry_widget,
+                             "%s_entry",
+                             widget);
+            GNUNET_asprintf (&cal_widget,
+                             "%s_cal",
+                             widget);
+
+            if (GCG_get_main_window_object (entry_widget))
+            {
+                const char *value = gtk_entry_get_text (GTK_ENTRY 
(GCG_get_main_window_object (entry_widget)));
+                if (strlen (value) > 0)
+                    isset = true;
+                json_object_set_new (id_attr, "type", json_string ("string"));
+                if (strstr (widget, "ia_ahv"))
+                    json_object_set_new (id_attr, "name", json_string 
("ahv_number"));
+                if (strstr (widget, "ia_ssn"))
+                    json_object_set_new (id_attr, "name", json_string 
("social_security_number"));
+                if (strstr (widget, "ia_full_name"))
+                    json_object_set_new (id_attr, "name", json_string 
("full_name"));
+                json_object_set_new (id_attr, "value", json_string (value));
+                json_object_set_new (id_attr, "widget", json_string 
(entry_widget));
+            }
+            if (GCG_get_main_window_object (cal_widget))
+            {
+                guint day;
+                guint month;
+                guint year;
+
+                json_object_set_new (id_attr, "type", json_string ("date"));
+                gtk_calendar_get_date (GTK_CALENDAR 
(GCG_get_main_window_object (cal_widget)),
+                                       &year,
+                                       &month,
+                                       &day);
+                json_object_set_new (id_attr, "year", json_integer (year));
+                json_object_set_new (id_attr, "month", json_integer (month));
+                json_object_set_new (id_attr, "day", json_integer (day));
+                json_object_set_new (id_attr, "widget", json_string 
(cal_widget));
+            }
+            if (isset)
+                json_array_append_new (attributes, id_attr);
+            GNUNET_free (entry_widget);
+            GNUNET_free (cal_widget);
+        }
+        json_object_set_new (arguments, "identity", attributes);
+
+        if (check_state (redux_state, "ReduxCountrySelectedState"))
+            ANASTASIS_backup_action (redux_state,
+                                    "entering_user_attributes",
+                                    arguments,
+                                    &action_cb,
+                                    NULL);
+        else
+            ANASTASIS_backup_action (redux_state,
+                                     "editing_user_attributes",
+                                     arguments,
+                                     &action_cb,
+                                     NULL);
+
+        gtk_widget_hide (GTK_WIDGET (GCG_get_main_window_object (
+                                        "anastasis_gtk_identity_frame")));
+        gtk_widget_show (GTK_WIDGET (GCG_get_main_window_object (
+                                        
"anastasis_gtk_b_authentication_frame")));
+        gtk_widget_set_sensitive (GTK_WIDGET (GCG_get_main_window_object (
+                                        
"anastasis_gtk_main_window_forward_button")), false);
+        gtk_widget_hide (GTK_WIDGET (GCG_get_main_window_object (
+                                        
"anastasis_gtk_user_attributes_image")));
+        gtk_widget_show (GTK_WIDGET (GCG_get_main_window_object (
+                                        
"anastasis_gtk_b_authentication_methods_image")));
+    }
+}
+
+
 /**
  * Task run on shutdown.
  *
diff --git a/src/anastasis/anastasis-gtk_backup.c 
b/src/anastasis/anastasis-gtk_backup.c
index a65c402..8236af8 100644
--- a/src/anastasis/anastasis-gtk_backup.c
+++ b/src/anastasis/anastasis-gtk_backup.c
@@ -118,10 +118,87 @@ anastasis_gtk_backup_button_clicked (GObject *object,
                                         "anastasis_gtk_main_control_vbox")));
           gtk_widget_show (GTK_WIDGET (GCG_get_main_window_object (
                                         "anastasis_gtk_continent_frame")));
+          gtk_widget_show (GTK_WIDGET (GCG_get_main_window_object (
+                                        
"anastasis_gtk_continent_selection_image")));
      }
 }
 
 
+/**
+ * Callback invoked if the the "secure question"-button is clicked.
+ *
+ * @param object
+ * @param user_data unused
+ */
+void
+anastasis_gtk_btn_add_auth_question_clicked_cb (GObject *object,
+                                                 gpointer user_data)
+{
+     gtk_widget_show (GTK_WIDGET (GCG_get_main_window_object (
+                                        "anastasis_gtk_b_question_dialog")));
+}
+
+
+/**
+ * Callback invoked if the the "post"-button is clicked.
+ *
+ * @param object
+ * @param user_data unused
+ */
+void
+anastasis_gtk_btn_add_auth_post_clicked_cb (GObject *object,
+                                             gpointer user_data)
+{
+     gtk_widget_show (GTK_WIDGET (GCG_get_main_window_object (
+                                        "anastasis_gtk_b_post_dialog")));
+}
+
+
+/**
+ * Callback invoked if the the "video"-button is clicked.
+ *
+ * @param object
+ * @param user_data unused
+ */
+void
+anastasis_gtk_btn_add_auth_video_clicked_cb (GObject *object,
+                                              gpointer user_data)
+{
+     gtk_widget_show (GTK_WIDGET (GCG_get_main_window_object (
+                                        "anastasis_gtk_b_video_dialog")));
+}
+
+
+/**
+ * Callback invoked if the the "sms"-button is clicked.
+ *
+ * @param object
+ * @param user_data unused
+ */
+void
+anastasis_gtk_btn_add_auth_sms_clicked_cb (GObject *object,
+                                            gpointer user_data)
+{
+     gtk_widget_show (GTK_WIDGET (GCG_get_main_window_object (
+                                        "anastasis_gtk_b_sms_dialog")));
+}
+
+
+/**
+ * Callback invoked if the the "email"-button is clicked.
+ *
+ * @param object
+ * @param user_data unused
+ */
+void
+anastasis_gtk_btn_add_auth_email_clicked_cb (GObject *object,
+                                             gpointer user_data)
+{
+     gtk_widget_show (GTK_WIDGET (GCG_get_main_window_object (
+                                        "anastasis_gtk_b_email_dialog")));
+}
+
+
 /**
  * Function called with the results of a #ANASTASIS_get_config().
  *
@@ -158,27 +235,27 @@ config_cb (void *cls,
      if (NULL != strstr (methods, "question"))
      {
           gtk_widget_show (GTK_WIDGET (GCG_get_main_window_object (
-                                        
"anastasis_gtk_bttn_add_auth_question")));
+                                        
"anastasis_gtk_btn_add_auth_question")));
      }
      if (NULL != strstr (methods, "sms"))
      {
           gtk_widget_show (GTK_WIDGET (GCG_get_main_window_object (
-                                        "anastasis_gtk_bttn_add_auth_sms")));
+                                        "anastasis_gtk_btn_add_auth_sms")));
      }
      if (NULL != strstr (methods, "email"))
      {
           gtk_widget_show (GTK_WIDGET (GCG_get_main_window_object (
-                                        "anastasis_gtk_bttn_add_auth_email")));
+                                        "anastasis_gtk_btn_add_auth_email")));
      }
      if (NULL != strstr (methods, "video"))
      {
           gtk_widget_show (GTK_WIDGET (GCG_get_main_window_object (
-                                        "anastasis_gtk_bttn_add_auth_video")));
+                                        "anastasis_gtk_btn_add_auth_video")));
      }
      if (NULL != strstr (methods, "post"))
      {
           gtk_widget_show (GTK_WIDGET (GCG_get_main_window_object (
-                                        "anastasis_gtk_bttn_add_auth_post")));
+                                        "anastasis_gtk_btn_add_auth_post")));
      }
 }
 
diff --git a/src/anastasis/anastasis-gtk_helper.c 
b/src/anastasis/anastasis-gtk_helper.c
index a5235de..f0b94eb 100644
--- a/src/anastasis/anastasis-gtk_helper.c
+++ b/src/anastasis/anastasis-gtk_helper.c
@@ -33,11 +33,11 @@
 
 
 /**
- * Function to ckeck if minimal required attributes are set.
+ * Function to ckeck if required attributes are set.
  * 
  * @return bool
  */
-static bool
+bool
 check_attributes_fullfilled ()
 {
     size_t index;
@@ -161,7 +161,7 @@ persist_state (json_t *state)
  * @param error_code Error code
  * @param new_state new state as result
  */
-static void
+void
 action_cb (void *cls,
            enum ANASTASIS_ErrorCode error_code,
            json_t *result_state)
@@ -170,7 +170,13 @@ action_cb (void *cls,
     {
         redux_state = json_deep_copy (result_state);
         if (check_state (redux_state, "ReduxContinentSelectedState"))
+        {
             init_country_list (redux_state, json_string_value (json_object_get 
(redux_state, "selected_continent")));
+            gtk_widget_hide (GTK_WIDGET (GCG_get_main_window_object (
+                                        
"anastasis_gtk_continent_selection_image")));
+            gtk_widget_show (GTK_WIDGET (GCG_get_main_window_object (
+                                        
"anastasis_gtk_country_selection_image")));
+        }
         if (check_state (redux_state, "ReduxCountrySelectedState"))
         {
             gtk_widget_set_sensitive (GTK_WIDGET (GCG_get_main_window_object (
@@ -326,343 +332,4 @@ init_id_attr (json_t *state,
          * FIXME: handle other types
          */    
     }
-}
-
-
-/**
- * Callback invoked if a text is inserted in "cal" GtkEntry.
- *
- * @param cell_editable the object on which the signal was emitted
- * @param user_data user data set when the signal handler was connected 
(unused)
- */
-void
-anastasis_gtk_ia_birthdate_cal_day_selected_cb (GtkCellEditable *cell_editable,
-                                       gpointer user_data)
-{
-    gtk_widget_set_sensitive (GTK_WIDGET (GCG_get_main_window_object (
-                                        
"anastasis_gtk_main_window_forward_button")), false);
-
-    // check, if required attributes are set to activate forward button
-    if (check_attributes_fullfilled ())
-        gtk_widget_set_sensitive (GTK_WIDGET (GCG_get_main_window_object (
-                                        
"anastasis_gtk_main_window_forward_button")), true);
-}
-
-
-/**
- * Callback invoked if a text is inserted in "ssn" GtkEntry.
- *
- * @param cell_editable the object on which the signal was emitted
- * @param user_data user data set when the signal handler was connected 
(unused)
- */
-void
-anastasis_gtk_ia_ssn_entry_changed_cb (GtkCellEditable *cell_editable,
-                                       gpointer user_data)
-{
-    gtk_widget_set_sensitive (GTK_WIDGET (GCG_get_main_window_object (
-                                        
"anastasis_gtk_main_window_forward_button")), false);
-
-    // check, if required attributes are set to activate forward button
-    if (check_attributes_fullfilled ())
-        gtk_widget_set_sensitive (GTK_WIDGET (GCG_get_main_window_object (
-                                        
"anastasis_gtk_main_window_forward_button")), true);
-}
-
-
-/**
- * Callback invoked if a text is inserted in "ahv" GtkEntry.
- *
- * @param cell_editable the object on which the signal was emitted
- * @param user_data user data set when the signal handler was connected 
(unused)
- */
-void
-anastasis_gtk_ia_ahv_entry_changed_cb (GtkCellEditable *cell_editable,
-                                       gpointer user_data)
-{
-    gtk_widget_set_sensitive (GTK_WIDGET (GCG_get_main_window_object (
-                                        
"anastasis_gtk_main_window_forward_button")), false);
-
-    // check, if required attributes are set to activate forward button
-    if (check_attributes_fullfilled ())
-        gtk_widget_set_sensitive (GTK_WIDGET (GCG_get_main_window_object (
-                                        
"anastasis_gtk_main_window_forward_button")), true);
-}
-
-
-/**
- * Callback invoked if a text is inserted in "full_name" GtkEntry.
- *
- * @param cell_editable the object on which the signal was emitted
- * @param user_data user data set when the signal handler was connected 
(unused)
- */
-void
-anastasis_gtk_ia_full_name_entry_changed_cb (GtkCellEditable *cell_editable,
-                                             gpointer user_data)
-{
-    gtk_widget_set_sensitive (GTK_WIDGET (GCG_get_main_window_object (
-                                        
"anastasis_gtk_main_window_forward_button")), false);
-
-    // check, if required attributes are set to activate forward button
-    if (check_attributes_fullfilled ())
-        gtk_widget_set_sensitive (GTK_WIDGET (GCG_get_main_window_object (
-                                        
"anastasis_gtk_main_window_forward_button")), true);
-}
-
-
-/**
- * Callback invoked if a continent is selected (row-activated signal).
- *
- * @param tree_view the object on which the signal is emitted
- * @param path the GtkTreePath for the activated row
- * @param column the GtkTreeViewColumn in which the activation occurred
- * @param user_data user data set when the signal handler was connected 
(unused)
- */
-void
-anastasis_gtk_continent_activated (GtkTreeView *tree_view,
-                                   GtkTreePath *path,
-                                   GtkTreeViewColumn *column,
-                                   gpointer user_data)
-{
-        GtkTreeIter iter;
-        GtkTreeModel *model= gtk_tree_view_get_model (tree_view);
-
-        if (gtk_tree_model_get_iter(model, &iter, path))
-        {
-            gchar *continent_name;
-            json_t *arguments = json_object ();
-
-            if (NULL == arguments)
-            {
-                GNUNET_break (0);
-            }
-            gtk_tree_model_get (model, &iter, 0, &continent_name, -1);
-            json_object_set (arguments, "continent", json_string 
(continent_name));
-
-            if (check_state (redux_state, "ReduxContinentSelectedState"))
-                redux_state = ANASTASIS_backup_start (cfg);
-            ANASTASIS_backup_action (redux_state,
-                                     "selection_continent",
-                                     arguments,
-                                     &action_cb,
-                                     NULL);
-            g_free(continent_name);
-        }
-}
-
-
-/**
- * Callback invoked if a country is selected (row-activated signal).
- *
- * @param tree_view the object on which the signal is emitted
- * @param path the GtkTreePath for the activated row
- * @param column the GtkTreeViewColumn in which the activation occurred
- * @param user_data user data set when the signal handler was connected 
(unused)
- */
-void
-anastasis_gtk_country_activated (GtkTreeView *tree_view,
-                                 GtkTreePath *path,
-                                 GtkTreeViewColumn *column,
-                                 gpointer user_data)
-{
-        GtkTreeIter iter;
-        GtkTreeModel *model= gtk_tree_view_get_model (tree_view);
-
-        if (gtk_tree_model_get_iter(model, &iter, path))
-        {
-            gchar *country_name;
-            gchar *country_code;
-            json_t *arguments = json_object ();
-
-            if (NULL == arguments)
-            {
-                GNUNET_break (0);
-            }
-            gtk_tree_model_get (model, &iter, 
-                                0, &country_name, 
-                                1, &country_code, 
-                                -1);
-            json_object_set (arguments, "country", json_string (country_name));
-            json_object_set (arguments, "country_code", json_string 
(country_code));
-
-            if (check_state (redux_state, "ReduxContinentSelectedState"))
-                ANASTASIS_backup_action (redux_state,
-                                        "selection_country",
-                                        arguments,
-                                        &action_cb,
-                                        NULL);
-
-            else
-                if (! (0 == strcmp (country_name, json_string_value (
-                    json_object_get (redux_state, "selected_country")))))
-                {
-                    ANASTASIS_backup_action (redux_state,
-                                             "changing_country",
-                                             arguments,
-                                             &action_cb,
-                                             NULL);
-                }
-                
-            g_free(country_name);
-            g_free(country_code);
-        }
-}
-
-
-/**
- * Callback invoked if the the "back"-button is clicked.
- *
- * @param object
- * @param user_data unused
- */
-void
-anastasis_gtk_main_window_back_clicked (GObject *object,
-                                        gpointer user_data)
-{
-    char *state = json_string_value (json_object_get (redux_state, 
"backup-state"));
-    if (!state)
-        state = json_string_value (json_object_get (redux_state, 
"recovery-state"));
-    GNUNET_assert (state);
-
-    if (gtk_widget_is_visible (GTK_WIDGET (GCG_get_main_window_object (
-                                        "anastasis_gtk_continent_frame"))))
-    {
-        /** FIXME: Show warning in this case, because state is lost afterwards 
*/
-        gtk_widget_show (GTK_WIDGET (GCG_get_main_window_object (
-                                        "anastasis_gtk_start_frame")));
-        gtk_widget_hide (GTK_WIDGET (GCG_get_main_window_object (
-                                        "anastasis_gtk_main_control_vbox")));
-        gtk_widget_hide (GTK_WIDGET (GCG_get_main_window_object (
-                                        "anastasis_gtk_continent_frame")));
-        gtk_widget_set_sensitive (GTK_WIDGET (GCG_get_main_window_object (
-                                        
"anastasis_gtk_main_window_forward_button")), false);
-    }
-    if (gtk_widget_is_visible (GTK_WIDGET (GCG_get_main_window_object (
-                                        "anastasis_gtk_identity_frame"))))
-    {
-        gtk_widget_show (GTK_WIDGET (GCG_get_main_window_object (
-                                        "anastasis_gtk_continent_frame")));
-        gtk_widget_hide (GTK_WIDGET (GCG_get_main_window_object (
-                                        "anastasis_gtk_identity_frame")));
-    }
-    if (gtk_widget_is_visible (GTK_WIDGET (GCG_get_main_window_object (
-                                        
"anastasis_gtk_b_authentication_frame"))))
-    {
-        gtk_widget_show (GTK_WIDGET (GCG_get_main_window_object (
-                                        "anastasis_gtk_identity_frame")));
-        gtk_widget_hide (GTK_WIDGET (GCG_get_main_window_object (
-                                        
"anastasis_gtk_b_authentication_frame")));
-        if (check_attributes_fullfilled ())
-            gtk_widget_set_sensitive (GTK_WIDGET (GCG_get_main_window_object (
-                                        
"anastasis_gtk_main_window_forward_button")), true);
-    }
-}
-
-
-/**
- * Callback invoked if the the "forward"-button is clicked.
- *
- * @param object
- * @param user_data unused
- */
-void
-anastasis_gtk_main_window_forward_clicked (GObject *object,
-                                           gpointer user_data)
-{
-    //show identity frame, hide continent frame
-    if (check_state (redux_state, "ReduxCountrySelectedState") &&
-            gtk_widget_is_visible (GTK_WIDGET (GCG_get_main_window_object (
-                                        "anastasis_gtk_continent_frame"))))
-    {
-        gtk_widget_hide (GTK_WIDGET (GCG_get_main_window_object (
-                                        "anastasis_gtk_continent_frame")));
-        gtk_widget_show (GTK_WIDGET (GCG_get_main_window_object (
-                                        "anastasis_gtk_identity_frame")));
-        gtk_widget_set_sensitive (GTK_WIDGET (GCG_get_main_window_object (
-                                        
"anastasis_gtk_main_window_forward_button")), false);
-    }
-
-    //show provider frame, hide identity frame
-    if (gtk_widget_is_visible (GTK_WIDGET (GCG_get_main_window_object (
-                                        "anastasis_gtk_identity_frame"))) &&
-                check_attributes_fullfilled ())
-    {
-        GList *children, *iter;
-        json_t *arguments = json_object ();
-        json_t *attributes = json_array ();
-
-        children = gtk_container_get_children (GTK_CONTAINER 
(GCG_get_main_window_object (
-                                                                
"anastasis_gtk_identity_vbox")));
-        for (iter = children; iter != NULL; iter = g_list_next (iter))
-        {
-            bool isset = false;
-            char *entry_widget;
-            char *cal_widget;
-            char *widget = gtk_buildable_get_name (iter->data);
-            json_t *id_attr = json_object ();
-
-            GNUNET_asprintf (&entry_widget,
-                             "%s_entry",
-                             widget);
-            GNUNET_asprintf (&cal_widget,
-                             "%s_cal",
-                             widget);
-
-            if (GCG_get_main_window_object (entry_widget))
-            {
-                const char *value = gtk_entry_get_text (GTK_ENTRY 
(GCG_get_main_window_object (entry_widget)));
-                if (strlen (value) > 0)
-                    isset = true;
-                json_object_set_new (id_attr, "type", json_string ("string"));
-                if (strstr (widget, "ia_ahv"))
-                    json_object_set_new (id_attr, "name", json_string 
("ahv_number"));
-                if (strstr (widget, "ia_ssn"))
-                    json_object_set_new (id_attr, "name", json_string 
("social_security_number"));
-                if (strstr (widget, "ia_full_name"))
-                    json_object_set_new (id_attr, "name", json_string 
("full_name"));
-                json_object_set_new (id_attr, "value", json_string (value));
-                json_object_set_new (id_attr, "widget", json_string 
(entry_widget));
-            }
-            if (GCG_get_main_window_object (cal_widget))
-            {
-                guint day;
-                guint month;
-                guint year;
-
-                json_object_set_new (id_attr, "type", json_string ("date"));
-                gtk_calendar_get_date (GTK_CALENDAR 
(GCG_get_main_window_object (cal_widget)),
-                                       &year,
-                                       &month,
-                                       &day);
-                json_object_set_new (id_attr, "year", json_integer (year));
-                json_object_set_new (id_attr, "month", json_integer (month));
-                json_object_set_new (id_attr, "day", json_integer (day));
-                json_object_set_new (id_attr, "widget", json_string 
(cal_widget));
-            }
-            if (isset)
-                json_array_append_new (attributes, id_attr);
-            GNUNET_free (entry_widget);
-            GNUNET_free (cal_widget);
-        }
-        json_object_set_new (arguments, "identity", attributes);
-
-        if (check_state (redux_state, "ReduxCountrySelectedState"))
-            ANASTASIS_backup_action (redux_state,
-                                    "entering_user_attributes",
-                                    arguments,
-                                    &action_cb,
-                                    NULL);
-        else
-            ANASTASIS_backup_action (redux_state,
-                                     "editing_user_attributes",
-                                     arguments,
-                                     &action_cb,
-                                     NULL);
-
-        gtk_widget_hide (GTK_WIDGET (GCG_get_main_window_object (
-                                        "anastasis_gtk_identity_frame")));
-        gtk_widget_show (GTK_WIDGET (GCG_get_main_window_object (
-                                        
"anastasis_gtk_b_authentication_frame")));
-        gtk_widget_set_sensitive (GTK_WIDGET (GCG_get_main_window_object (
-                                        
"anastasis_gtk_main_window_forward_button")), false);
-    }
 }
\ No newline at end of file
diff --git a/src/include/anastasis-gtk_helper.h 
b/src/include/anastasis-gtk_helper.h
index a1510f5..5ba4048 100644
--- a/src/include/anastasis-gtk_helper.h
+++ b/src/include/anastasis-gtk_helper.h
@@ -63,7 +63,7 @@ extern struct GNUNET_CURL_RescheduleContext *rc;
  * @param error_code Error code
  * @param new_state new state as result
  */
-static void
+void
 action_cb (void *cls,
            enum ANASTASIS_ErrorCode error,
            json_t *new_state);
@@ -88,6 +88,15 @@ GObject *
 GCG_get_main_window_object (const char *name);
 
 
+/**
+ * Function to ckeck if required attributes are set.
+ * 
+ * @return bool
+ */
+bool
+check_attributes_fullfilled ();
+
+
 /**
  * Checks the actual state. True, if state is correct, else false.
  * 

-- 
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.



reply via email to

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