anastasis-gtk

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

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


      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 "anastasis-gtk_rows.h"
     30 #include <jansson.h>
     31 
     32 
     33 /**
     34  * Callback invoked if the the "authentication methods delete"-button is clicked.
     35  *
     36  * @param object
     37  * @param user_data unused
     38  */
     39 void
     40 anastasis_gtk_authentication_method_delete_button_clicked_cb (GObject *object,
     41                                                               gpointer user_data)
     42 {
     43   json_t *args;
     44   AGRow *row;
     45 
     46   row = AG_selected_row ("anastasis_gtk_authentication_methods_selection");
     47   if (NULL == row)
     48   {
     49     GNUNET_break (0);
     50     return;
     51   }
     52   AG_freeze ();
     53   args = GNUNET_JSON_PACK (
     54     GNUNET_JSON_pack_uint64 ("authentication_method",
     55                              AG_row_uint (row,
     56                                           "index")));
     57   AG_ra = ANASTASIS_redux_action (AG_redux_state,
     58                                   "delete_authentication",
     59                                   args,
     60                                   &AG_action_cb,
     61                                   NULL);
     62   json_decref (args);
     63 }
     64 
     65 
     66 /**
     67  * Callback invoked if the selected authentication method changed.
     68  *
     69  * @param selection the selection of the authentication method list
     70  * @param pspec unused
     71  * @param user_data unused
     72  */
     73 void
     74 auth_method_selection_changed_cb (
     75   GtkSingleSelection *selection,
     76   GParamSpec *pspec,
     77   gpointer user_data)
     78 {
     79   (void) pspec;
     80   (void) user_data;
     81   if (NULL != AG_selected (selection))
     82     AG_sensitive ("anastasis_gtk_authentication_method_delete_button");
     83   else
     84     AG_insensitive ("anastasis_gtk_authentication_method_delete_button");
     85 }