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 }