messenger-gtk

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

account_entry.h (2397B)


      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/account_entry.h
     23  */
     24 
     25 #ifndef UI_ACCOUNT_ENTRY_H_
     26 #define UI_ACCOUNT_ENTRY_H_
     27 
     28 #include "messenger.h"
     29 
     30 #include <gnunet/gnunet_chat_lib.h>
     31 
     32 typedef struct UI_ACCOUNT_ENTRY_Handle
     33 {
     34   const struct GNUNET_CHAT_Account *account;
     35   const struct GNUNET_CHAT_Contact *contact;
     36 
     37   GtkBuilder *builder;
     38 
     39   GtkWidget *entry_box;
     40 
     41   HdyAvatar *entry_avatar;
     42   GtkLabel *entry_label;
     43 } UI_ACCOUNT_ENTRY_Handle;
     44 
     45 /**
     46  * Allocates and creates a new account entry
     47  * handle to manage an account in a list for
     48  * a given messenger application.
     49  *
     50  * @param app Messenger application
     51  * @return New account entry handle
     52  */
     53 UI_ACCOUNT_ENTRY_Handle*
     54 ui_account_entry_new(MESSENGER_Application *app);
     55 
     56 /**
     57  * Sets the content of the given account entry
     58  * handle respectively to visually represent a
     59  * selected chat account.
     60  *
     61  * @param handle Account entry handle
     62  * @param account Chat account
     63  */
     64 void
     65 ui_account_entry_set_account(UI_ACCOUNT_ENTRY_Handle* handle,
     66                              const struct GNUNET_CHAT_Account *account);
     67 
     68 /**
     69  * Sets the content of the given account entry
     70  * handle respectively to visually represent a
     71  * selected chat contact.
     72  *
     73  * @param handle Account entry handle
     74  * @param contact Chat contact
     75  */
     76 void
     77 ui_account_entry_set_contact(UI_ACCOUNT_ENTRY_Handle* handle,
     78                              const struct GNUNET_CHAT_Contact *contact);
     79 
     80 /**
     81  * Frees its resources and destroys a given
     82  * account entry handle.
     83  *
     84  * @param handle Account entry handle
     85  */
     86 void
     87 ui_account_entry_delete(UI_ACCOUNT_ENTRY_Handle *handle);
     88 
     89 #endif /* UI_ACCOUNT_ENTRY_H_ */