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 }