anastasis-gtk

Demonstrator GUI for Anastasis
Log | Files | Refs | README | LICENSE

anastasis-gtk_handle-auth-delete-button-clicked.c (2851B)


      1 /*
      2      This file is part of anastasis-gtk.
      3      Copyright (C) 2020 Anastasis SARL
      4 
      5      Anastasis is free software; you can redistribute it and/or modify
      6      it under the terms of the GNU General Public License as published
      7      by the Free Software Foundation; either version 3, or (at your
      8      option) any later version.
      9 
     10      Anastasis is distributed in the hope that it will be useful, but
     11      WITHOUT ANY WARRANTY; without even the implied warranty of
     12      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
     13      General Public License for more details.
     14 
     15      You should have received a copy of the GNU General Public License
     16      along with Anastasis; see the file COPYING.  If not, write to the
     17      Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
     18      Boston, MA 02110-1301, USA.
     19 */
     20 /**
     21  * @file src/anastasis/anastasis-gtk_handle-auth-delete-button-clicked.c
     22  * @brief Support for deletion of authentication methods
     23  * @author Christian Grothoff
     24  * @author Dennis Neufeld
     25  */
     26 #include <gnunet/gnunet_util_lib.h>
     27 #include "anastasis-gtk_action.h"
     28 #include "anastasis-gtk_helper.h"
     29 #include <jansson.h>
     30 
     31 
     32 /**
     33  * Callback invoked if the the "authentication methods delete"-button is clicked.
     34  *
     35  * @param object
     36  * @param user_data unused
     37  */
     38 void
     39 anastasis_gtk_authentication_method_delete_button_clicked_cb (GObject *object,
     40                                                               gpointer user_data)
     41 {
     42   json_t *args;
     43   guint index;
     44   GtkTreeSelection *ts;
     45   GtkTreeModel *model;
     46   GtkTreeIter iter;
     47 
     48   ts = GTK_TREE_SELECTION (GCG_get_main_window_object (
     49                              "anastasis_gtk_authentication_methods_selection"));
     50   if (! gtk_tree_selection_get_selected (ts,
     51                                          &model,
     52                                          &iter))
     53   {
     54     GNUNET_break (0);
     55     return;
     56   }
     57   gtk_tree_model_get (model,
     58                       &iter,
     59                       AG_AMMC_INDEX, &index,
     60                       -1);
     61   AG_freeze ();
     62   args = GNUNET_JSON_PACK (
     63     GNUNET_JSON_pack_uint64 ("authentication_method",
     64                              index));
     65   AG_ra = ANASTASIS_redux_action (AG_redux_state,
     66                                   "delete_authentication",
     67                                   args,
     68                                   &AG_action_cb,
     69                                   NULL);
     70   json_decref (args);
     71 }
     72 
     73 
     74 void
     75 auth_method_selection_changed_cb (
     76   GtkTreeSelection *treeselection,
     77   gpointer user_data)
     78 {
     79   GtkTreeModel *model;
     80   GtkTreeIter iter;
     81 
     82   if (gtk_tree_selection_get_selected (treeselection,
     83                                        &model,
     84                                        &iter))
     85     AG_sensitive ("anastasis_gtk_authentication_method_delete_button");
     86   else
     87     AG_insensitive ("anastasis_gtk_authentication_method_delete_button");
     88 }