messenger-gtk

Gtk+3 graphical user interfaces for GNUnet Messenger
Log | Files | Refs | Submodules | README | LICENSE

file_entry.h (1851B)


      1 /*
      2    This file is part of GNUnet.
      3    Copyright (C) 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/file_entry.h
     23  */
     24 
     25 #ifndef UI_FILE_ENTRY_H_
     26 #define UI_FILE_ENTRY_H_
     27 
     28 #include <gnunet/gnunet_chat_lib.h>
     29 
     30 #include "messenger.h"
     31 
     32 typedef struct UI_FILE_ENTRY_Handle
     33 {
     34   GtkBuilder *builder;
     35 
     36   GtkWidget *entry_box;
     37 
     38   GtkImage *file_image;
     39   GtkLabel *name_label;
     40   GtkLabel *size_label;
     41 } UI_FILE_ENTRY_Handle;
     42 
     43 /**
     44  * Allocates and creates a new file entry handle
     45  * to manage loading files for a given messenger
     46  * application.
     47  *
     48  * @param app Messenger application
     49  * @return New file entry handle
     50  */
     51 UI_FILE_ENTRY_Handle*
     52 ui_file_entry_new(MESSENGER_Application *app);
     53 
     54 /**
     55  * Updates a file entry handle with a selected
     56  * file to represent it visually.
     57  *
     58  * @param handle File entry handle
     59  * @param file Chat file
     60  */
     61 void
     62 ui_file_entry_update(UI_FILE_ENTRY_Handle *handle,
     63                      struct GNUNET_CHAT_File *file);
     64 
     65 /**
     66  * Frees its resources and destroys a given file
     67  * entry handle.
     68  *
     69  * @param handle File entry handle
     70  */
     71 void
     72 ui_file_entry_delete(UI_FILE_ENTRY_Handle *handle);
     73 
     74 #endif /* UI_FILE_ENTRY_H_ */