send_file.h (2199B)
1 /* 2 This file is part of GNUnet. 3 Copyright (C) 2021--2024 GNUnet e.V. 4 5 GNUnet is free software: you can redistribute it and/or modify it 6 under the terms of the GNU Affero General Public License as published 7 by the Free Software Foundation, either version 3 of the License, 8 or (at your option) any later version. 9 10 GNUnet 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 Affero General Public License for more details. 14 15 You should have received a copy of the GNU Affero General Public License 16 along with this program. If not, see <http://www.gnu.org/licenses/>. 17 18 SPDX-License-Identifier: AGPL3.0-or-later 19 */ 20 /* 21 * @author Tobias Frisch 22 * @file ui/send_file.h 23 */ 24 25 #ifndef UI_SEND_FILE_H_ 26 #define UI_SEND_FILE_H_ 27 28 #include "messenger.h" 29 30 typedef struct UI_SEND_FILE_Handle 31 { 32 GList *contact_entries; 33 34 GtkBuilder *builder; 35 GtkDialog *dialog; 36 37 GtkDrawingArea *file_drawing_area; 38 GtkFileChooserButton *file_chooser_button; 39 40 gulong file_draw_signal; 41 42 GtkButton *cancel_button; 43 GtkButton *send_button; 44 45 GdkPixbuf *image; 46 GdkPixbufAnimation *animation; 47 GdkPixbufAnimationIter *animation_iter; 48 49 guint redraw_animation; 50 } UI_SEND_FILE_Handle; 51 52 /** 53 * Initializes a handle for the send file dialog 54 * of a given messenger application. 55 * 56 * @param app Messenger application 57 * @param handle Send file dialog handle 58 */ 59 void 60 ui_send_file_dialog_init(MESSENGER_Application *app, 61 UI_SEND_FILE_Handle *handle); 62 63 /** 64 * Updates a given send file dialog handle with 65 * a certain filename to pre-determine which file 66 * gets selected by the dialog as default. 67 * 68 * @param handle Send file dialog handle 69 * @param filename Custom filename 70 */ 71 void 72 ui_send_file_dialog_update(UI_SEND_FILE_Handle *handle, 73 const gchar *filename); 74 75 /** 76 * Cleans up the allocated resources and resets the 77 * state of a given send file dialog handle. 78 * 79 * @param handle Send file dialog handle 80 */ 81 void 82 ui_send_file_dialog_cleanup(UI_SEND_FILE_Handle *handle); 83 84 #endif /* UI_SEND_FILE_H_ */