messenger-gtk

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

settings.h (2289B)


      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/settings.h
     23  */
     24 
     25 #ifndef UI_SETTINGS_H_
     26 #define UI_SETTINGS_H_
     27 
     28 #include "messenger.h"
     29 
     30 typedef struct UI_SETTINGS_Handle
     31 {
     32   GtkBuilder *builder;
     33   HdyPreferencesWindow *dialog;
     34 
     35   GtkSwitch *start_on_login_switch;
     36   GtkSwitch *run_in_background_switch;
     37 
     38   GtkSwitch *enable_notifications_switch;
     39   GtkSwitch *notification_sounds_switch;
     40 
     41   GtkLabel *blocked_label;
     42   GtkWidget *blocked_scrolled_window;
     43   GtkListBox *blocked_listbox;
     44   GtkSwitch *read_receipts_switch;
     45 
     46   GtkComboBox *auto_delete_combo_box;
     47 
     48   GtkSwitch *auto_accept_invitations_switch;
     49   GtkComboBox *delete_invitations_combo_box;
     50   GtkButton *delete_invitations_button;
     51 
     52   GtkSwitch *auto_accept_files_switch;
     53   GtkFileChooserButton *download_folder_button;
     54   GtkComboBox *delete_files_combo_box;
     55   GtkButton *show_files_button;
     56   GtkButton *delete_files_button;
     57 
     58   GtkComboBox *leave_chats_combo_box;
     59   GtkButton *leave_chats_button;
     60 
     61   gboolean open_files;
     62 } UI_SETTINGS_Handle;
     63 
     64 /**
     65  * Initializes a handle for the settings dialog
     66  * of a given messenger application.
     67  *
     68  * @param app Messenger application
     69  * @param handle Settings dialog handle
     70  */
     71 void
     72 ui_settings_dialog_init(MESSENGER_Application *app,
     73                         UI_SETTINGS_Handle *handle);
     74 
     75 /**
     76  * Cleans up the allocated resources and resets the
     77  * state of a given settings dialog handle.
     78  *
     79  * @param handle Settings dialog handle
     80  */
     81 void
     82 ui_settings_dialog_cleanup(UI_SETTINGS_Handle *handle);
     83 
     84 #endif /* UI_SETTINGS_H_ */