Remmina - The GTK+ Remote Desktop Client  v1.4.33
Remmina is a remote desktop client written in GTK+, aiming to be useful for system administrators and travellers, who need to work with lots of remote computers in front of either large monitors or tiny netbooks. Remmina supports multiple network protocols in an integrated and consistent user interface. Currently RDP, VNC, NX, XDMCP and SSH are supported.
remmina_main.h
Go to the documentation of this file.
1 /*
2  * Remmina - The GTK+ Remote Desktop Client
3  * Copyright (C) 2009-2011 Vic Lee
4  * Copyright (C) 2014-2015 Antenore Gatta, Fabio Castelli, Giovanni Panozzo
5  * Copyright (C) 2016-2022 Antenore Gatta, Giovanni Panozzo
6  * Copyright (C) 2022-2023 Antenore Gatta, Giovanni Panozzo, Hiroyuki Tanaka
7  *
8  * This program is free software; you can redistribute it and/or modify
9  * it under the terms of the GNU General Public License as published by
10  * the Free Software Foundation; either version 2 of the License, or
11  * (at your option) any later version.
12  *
13  * This program is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16  * GNU General Public License for more details.
17  *
18  * You should have received a copy of the GNU General Public License
19  * along with this program; if not, write to the Free Software
20  * Foundation, Inc., 51 Franklin Street, Fifth Floor,
21  * Boston, MA 02110-1301, USA.
22  *
23  * In addition, as a special exception, the copyright holders give
24  * permission to link the code of portions of this program with the
25  * OpenSSL library under certain conditions as described in each
26  * individual source file, and distribute linked combinations
27  * including the two.
28  * You must obey the GNU General Public License in all respects
29  * for all of the code used other than OpenSSL. * If you modify
30  * file(s) with this exception, you may extend this exception to your
31  * version of the file(s), but you are not obligated to do so. * If you
32  * do not wish to do so, delete this exception statement from your
33  * version. * If you delete this exception statement from all source
34  * files in the program, then also delete it here.
35  *
36  */
37 
38 #pragma once
39 
40 #include "remmina_file.h"
41 #include "remmina_monitor.h"
42 #include <gtk/gtk.h>
43 
44 #include "remmina_string_array.h"
45 
47 
48 typedef struct _RemminaMain {
49  GtkBuilder * builder;
50  GtkWindow * window;
51  /* Menu widgets */
52  GtkMenu * menu_popup;
53  GtkMenuButton * menu_header_button;
54  GtkMenu * menu_popup_full;
56  GtkRadioMenuItem * menuitem_view_mode_list;
57  GtkRadioMenuItem * menuitem_view_mode_tree;
58  GtkMenuItem * menuitem_connection_quit;
59  /* Button new */
60  GtkButton * button_new;
61  GtkButton * button_make_default;
62  /* Search bar objects */
63  GtkToggleButton * search_toggle;
64  GtkSwitch * switch_dark_mode;
65  GtkToggleButton * view_toggle_button;
66  GtkToggleButton * ustats_toggle;
67  GtkSearchBar * search_bar;
68  /* Quick connect objects */
70  GtkComboBoxText * combo_quick_connect_protocol;
72  GtkButton * button_quick_connect;
73  /* Other widgets */
74  GtkTreeView * tree_files_list;
75  GtkTreeViewColumn * column_files_list_name;
76  GtkTreeViewColumn * column_files_list_group;
77  GtkTreeViewColumn * column_files_list_server;
78  GtkTreeViewColumn * column_files_list_plugin;
79  GtkTreeViewColumn * column_files_list_date;
80  GtkTreeViewColumn * column_files_list_notes;
81  GtkStatusbar * statusbar_main;
82  GtkWidget * network_icon;
83  /* Non widget objects */
84  GtkAccelGroup * accelgroup_shortcuts;
87 } RemminaMain;
88 
90  GtkTreeModel * file_model;
91  GtkTreeModel * file_model_filter;
92  GtkTreeModel * file_model_sort;
93 
94  gboolean initialized;
95 
97  gchar * selected_name;
100 };
101 
102 G_BEGIN_DECLS
103 
104 /* Create the remminamain struct and the remmina main Remmina window */
105 GtkWidget *remmina_main_new(void);
106 /* Get the current main GTK window or NULL if not initialized */
107 GtkWindow *remmina_main_get_window(void);
108 
110 
111 void remmina_main_destroy(void);
114 
115 void remmina_main_show_dialog(GtkMessageType msg, GtkButtonsType buttons, const gchar* message);
116 void remmina_main_show_warning_dialog(const gchar *message);
117 void remmina_main_on_action_application_about(GSimpleAction *action, GVariant *param, gpointer data);
118 void remmina_main_on_action_application_default(GSimpleAction *action, GVariant *param, gpointer data);
119 void remmina_main_on_action_application_mpchange(GSimpleAction *action, GVariant *param, gpointer data);
120 void remmina_main_on_action_application_plugins(GSimpleAction *action, GVariant *param, gpointer data);
121 void remmina_main_on_action_application_dark_theme(GSimpleAction *action, GVariant *param, gpointer data);
122 void remmina_main_on_action_application_preferences(GSimpleAction *action, GVariant *param, gpointer data);
123 void remmina_main_on_action_application_quit(GSimpleAction *action, GVariant *param, gpointer data);
124 void remmina_main_on_action_connection_connect(GSimpleAction *action, GVariant *param, gpointer data);
125 void remmina_main_on_action_connection_copy(GSimpleAction *action, GVariant *param, gpointer data);
126 void remmina_main_on_action_connection_delete(GSimpleAction *action, GVariant *param, gpointer data);
127 void remmina_main_on_action_connection_delete_multiple(GSimpleAction *action, GVariant *param, gpointer data);
128 void remmina_main_on_action_connection_edit(GSimpleAction *action, GVariant *param, gpointer data);
129 void remmina_main_on_action_connection_external_tools(GSimpleAction *action, GVariant *param, gpointer data);
130 void remmina_main_on_action_connection_new(GSimpleAction *action, GVariant *param, gpointer data);
131 void remmina_main_on_action_help_community(GSimpleAction *action, GVariant *param, gpointer data);
132 void remmina_main_on_action_help_debug(GSimpleAction *action, GVariant *param, gpointer data);
133 void remmina_main_on_action_help_donations(GSimpleAction *action, GVariant *param, gpointer data);
134 void remmina_main_on_action_help_homepage(GSimpleAction *action, GVariant *param, gpointer data);
135 void remmina_main_on_action_help_wiki(GSimpleAction *action, GVariant *param, gpointer data);
136 void remmina_main_on_action_tools_export(GSimpleAction *action, GVariant *param, gpointer data);
137 void remmina_main_on_action_tools_import(GSimpleAction *action, GVariant *param, gpointer data);
138 void remmina_main_on_action_expand(GSimpleAction *action, GVariant *param, gpointer data);
139 void remmina_main_on_action_collapse(GSimpleAction *action, GVariant *param, gpointer data);
140 void remmina_main_on_action_search_toggle(GSimpleAction *action, GVariant *param, gpointer data);
141 void remmina_main_toggle_password_view(GtkWidget *widget, gpointer data);
143 
144 G_END_DECLS
void remmina_main_on_action_application_plugins(GSimpleAction *action, GVariant *param, gpointer data)
GtkToggleButton * search_toggle
Definition: remmina_main.h:63
GtkRadioMenuItem * menuitem_view_mode_list
Definition: remmina_main.h:56
GtkWidget * network_icon
Definition: remmina_main.h:82
void remmina_main_on_action_connection_external_tools(GSimpleAction *action, GVariant *param, gpointer data)
Definition: remmina_main.c:796
void remmina_main_save_before_destroy(void)
Save the Remmina Main Window size and the expanded group before to close Remmina. ...
Definition: remmina_main.c:180
G_BEGIN_DECLS typedef GPtrArray RemminaStringArray
gchar * selected_filename
Definition: remmina_main.h:96
GtkTreeModel * file_model
Definition: remmina_main.h:90
void remmina_main_destroy(void)
Definition: remmina_main.c:193
RemminaMainPriv * priv
Definition: remmina_main.h:85
void remmina_main_on_action_help_homepage(GSimpleAction *action, GVariant *param, gpointer data)
typedefG_BEGIN_DECLS struct _RemminaFile RemminaFile
Definition: types.h:44
GtkMenuItem * menuitem_connection_quit
Definition: remmina_main.h:58
GtkRadioMenuItem * menuitem_view_mode_tree
Definition: remmina_main.h:57
GtkTreeViewColumn * column_files_list_name
Definition: remmina_main.h:75
GtkMenu * menu_popup_delete_rc
Definition: remmina_main.h:55
void remmina_main_on_action_expand(GSimpleAction *action, GVariant *param, gpointer data)
void remmina_main_on_action_help_debug(GSimpleAction *action, GVariant *param, gpointer data)
void remmina_main_on_action_connection_copy(GSimpleAction *action, GVariant *param, gpointer data)
Definition: remmina_main.c:910
G_BEGIN_DECLS GtkWidget * remmina_main_new(void)
void remmina_main_on_action_tools_import(GSimpleAction *action, GVariant *param, gpointer data)
GtkSwitch * switch_dark_mode
Definition: remmina_main.h:64
GtkAccelGroup * accelgroup_shortcuts
Definition: remmina_main.h:84
void remmina_main_on_action_application_dark_theme(GSimpleAction *action, GVariant *param, gpointer data)
GtkTreeModel * file_model_filter
Definition: remmina_main.h:91
gchar * selected_name
Definition: remmina_main.h:97
RemminaMonitor * monitor
Definition: remmina_main.h:86
void remmina_main_on_action_connection_delete(GSimpleAction *action, GVariant *param, gpointer data)
Definition: remmina_main.c:977
void remmina_main_on_action_application_about(GSimpleAction *action, GVariant *param, gpointer data)
GtkMenuButton * menu_header_button
Definition: remmina_main.h:53
void remmina_main_show_dialog(GtkMessageType msg, GtkButtonsType buttons, const gchar *message)
void remmina_main_on_action_search_toggle(GSimpleAction *action, GVariant *param, gpointer data)
void remmina_main_on_action_application_preferences(GSimpleAction *action, GVariant *param, gpointer data)
GtkMenu * menu_popup
Definition: remmina_main.h:52
void remmina_main_reload_preferences()
gboolean initialized
Definition: remmina_main.h:94
GtkComboBoxText * combo_quick_connect_protocol
Definition: remmina_main.h:70
void remmina_main_on_action_connection_delete_multiple(GSimpleAction *action, GVariant *param, gpointer data)
GtkBox * box_quick_connect
Definition: remmina_main.h:69
GtkTreeViewColumn * column_files_list_server
Definition: remmina_main.h:77
void remmina_main_on_action_help_community(GSimpleAction *action, GVariant *param, gpointer data)
GtkButton * button_new
Definition: remmina_main.h:60
GtkMenu * menu_popup_full
Definition: remmina_main.h:54
GtkStatusbar * statusbar_main
Definition: remmina_main.h:81
void remmina_main_on_destroy_event(void)
Called when the remminamain->window widget is destroyed (glade event handler)
Definition: remmina_main.c:248
GtkTreeViewColumn * column_files_list_plugin
Definition: remmina_main.h:78
GtkBuilder * builder
Definition: remmina_main.h:49
GtkButton * button_quick_connect
Definition: remmina_main.h:72
void remmina_main_on_action_tools_export(GSimpleAction *action, GVariant *param, gpointer data)
void remmina_main_toggle_password_view(GtkWidget *widget, gpointer data)
GtkWindow * remmina_main_get_window(void)
void remmina_main_on_action_application_mpchange(GSimpleAction *action, GVariant *param, gpointer data)
Definition: remmina_main.c:814
GtkTreeView * tree_files_list
Definition: remmina_main.h:74
GtkToggleButton * view_toggle_button
Definition: remmina_main.h:65
GtkTreeViewColumn * column_files_list_group
Definition: remmina_main.h:76
RemminaStringArray * expanded_group
Definition: remmina_main.h:99
void remmina_main_on_action_connection_edit(GSimpleAction *action, GVariant *param, gpointer data)
Definition: remmina_main.c:946
void remmina_main_show_warning_dialog(const gchar *message)
void remmina_main_on_action_application_default(GSimpleAction *action, GVariant *param, gpointer data)
GtkTreeModel * file_model_sort
Definition: remmina_main.h:92
void remmina_main_update_file_datetime(RemminaFile *file)
void remmina_main_on_action_connection_connect(GSimpleAction *action, GVariant *param, gpointer data)
Definition: remmina_main.c:768
GtkWindow * window
Definition: remmina_main.h:50
void remmina_main_on_action_application_quit(GSimpleAction *action, GVariant *param, gpointer data)
GtkToggleButton * ustats_toggle
Definition: remmina_main.h:66
void remmina_main_on_action_connection_new(GSimpleAction *action, GVariant *param, gpointer data)
Definition: remmina_main.c:851
void remmina_main_on_action_collapse(GSimpleAction *action, GVariant *param, gpointer data)
GtkButton * button_make_default
Definition: remmina_main.h:61
void remmina_main_on_action_help_donations(GSimpleAction *action, GVariant *param, gpointer data)
GtkTreeViewColumn * column_files_list_notes
Definition: remmina_main.h:80
GtkSearchBar * search_bar
Definition: remmina_main.h:67
GtkEntry * entry_quick_connect_server
Definition: remmina_main.h:71
void remmina_main_on_action_help_wiki(GSimpleAction *action, GVariant *param, gpointer data)
gboolean override_view_file_mode_to_list
Definition: remmina_main.h:98
struct _RemminaMain RemminaMain
GtkTreeViewColumn * column_files_list_date
Definition: remmina_main.h:79